#include <iostream> #include <string> using namespace std; class Painting { public: Painting(){ myYear = 0; }//QString是一个类,可以不用初始化。int类型需要初始化 ~Painting(){} Painting(const string &title, const string &artist, int year) { myTitle = title; myArtist = artist; myYear = year; } void setTitle(const string &title) //const修饰的参数,在函数体内不能改变 { myTitle = title; } string title() const {return myTitle;} //const修饰的成员函数不能修改任何的成员变量(mutable修饰的变量除外) void setArtist(const string &artist) { myArtist = artist; } string artist() const {return myArtist;} void setYear(const int &year) { myYear = year; } int year() const {return myYear;} private: string myTitle; string myArtist; int myYear; }; int main(int argc, char *argv[]) { Painting painting("Bill","Gates",23); cout<<painting.title()<<" "<<painting.artist()<<" "<<painting.year()<<endl; cin.get(); return 0; } /* 2015年9月16日 22:54:52 const 使用说明: const成员函数不能调用非onst成员函数,因为非const成员函数可以会修改成员变量 const修饰的成员函数不能修改任何的成员变量(mutable修饰的变量除外) */
在成员函数中的参数,用的是引用。
引用的作用可以参考这篇博文:C++ 引用的作用和用法
在这个类中大量运用了const. 这是一个很好的习惯。关于const的好处可以参考这篇博文:C++ const用法 尽可能使用const