mình có 2 lớp và 1 hàm kiến tạo sau:
Code:
class Date{
      public: 
              Date();
              Date(int dayV,int monthV,int yearV);
              void getData();// doc du lieu tu istream vao cac bien thanh vien 
              void printShortForm()const;// in dang dd/mm/yyyy 
              void printLongForm()const;// in xau tieng Anh day du 
      private: 
               int day;
               int month;
               int year;
};
class BlogPost{ 
    public:
        BlogPost();
        BlogPost(Date t1,string tit,string bod);
        void Output();
        inline int getId();
        inline Date getCreationDate();
        inline string getTitle();
        inline string getBody();
    private:
        int id;
        static int lastIssuedId;
        Date creationDate;
        string title;
        string body;       
};




BlogPost::BlogPost(Date t1,string tit,string bod):creationDate(t1),title(tit),body(bod)
{}
trong lớp BlogPost thì id của mỗi biến kiểu BlogPost sẽ được tạo tự động, tức là nếu khai báo BlogPost b1,b2,b3; thì b1.getId()=1,b2.getId()=2,b1.getId()=3!
khi mình gán giá trị mới của b1=BlogPost(date,tit,bod); thì id sẽ bị cập nhật giá trị mới, mà mình k muốn điều này!
ví dụ
BlogPost b1,b2,b3;
Date d; //d=2/3/2012
d3=BlogPost(d,"zz","zzz");
thì id của d3 sẽ bị nhận giá trị bất kì nào đó,mà em lại muốn id không bị thay đổi

Đây là bài đầy đủ
Code:
#include <string>

#include <iostream>
#include <string> 
#include<ctime>
using namespace std;
time_t t = time(0);
struct tm * now = localtime( & t ); 
const string MONTHS[12] = {
       "January",
       "February",
       "March",
       "April",
       "May",
       "June",
       "July",
       "August",
       "September",
       "October",
       "November",
       "December"
};
class Date{
      public: 
              Date();
              Date(int dayV,int monthV,int yearV);
              void getData();// doc du lieu tu istream vao cac bien thanh vien 
              void printShortForm()const;// in dang dd/mm/yyyy 
              void printLongForm()const;// in xau tieng Anh day du 
      private: 
               int day;
               int month;
               int year;
};
class BlogPost{ 
    public:
        BlogPost();
        BlogPost(Date t1,string tit,string bod);
        void Output();
        inline int getId();
        inline Date getCreationDate();
        inline string getTitle();
        inline string getBody();
    private:
        int id;
        static int lastIssuedId;
        Date creationDate;
        string title;
        string body;       
};
int BlogPost::lastIssuedId=1;
int main(){
    Date d;
    BlogPost d1,d2,d3;
    d2=BlogPost(d,"Nui Khoai to","Quy Kuteo");
    d1.Output();
    d2.Output();
    d3.Output();
    cin.get(); 
    return 0;
}
Date::Date():day(now->tm_mday),month(now->tm_mon+1),year(now->tm_year+1900)
{}
Date::Date(int dayV,int monthV,int yearV):day(dayV),month(monthV),year(yearV)
{}
void Date::getData(){ 
    cout << "Nhap ngay: ";
    cin >> day; 
    cout << "Nhap thang: ";
    cin >> month;
    cout << "Nhap nam: ";
    cin >> year; 
    cin.ignore();
}
void Date::printShortForm()const{
      cout << (day < 10 ? "0" : "") << day << "/" 
      << (month < 10 ? "0" : "") << month << "/"
      << year;
}
void Date::printLongForm()const{ 
     cout << MONTHS[month - 1] << " " << day << ", " << year;
}
BlogPost::BlogPost():id(lastIssuedId++),title("EMTY"),body("EMTY")
{}
BlogPost::BlogPost(Date t1,string tit,string bod):creationDate(t1),title(tit),body(bod)
{}
void BlogPost::Output(){
    cout<<"ID "<<id
    <<" Date: ";
    creationDate.printShortForm();
    cout<<" Title: "<<title
    <<" Body: "<<body<<endl;
}
inline int BlogPost::getId(){
    return id;
}
inline Date BlogPost::getCreationDate(){
    return creationDate;
}
inline string BlogPost::getTitle(){
    return title;
}
inline string BlogPost::getBody(){
    return body;
}