struct Date{ int day, month, year; }; struct Book{ string name; Date date; void init(string n, int y, int m, int d); void print(void); }; void Book::init(string n, int y, int m, int d){ name = n; date.day = d; date.month = m; date.year = y; } void Book::print(void){ cout << "Book:"<< name <<endl; cout << "Date:"<<date.year<<","<<date.month<<","<<date.day<<endl; } int main(){ Book book; string name = "c++"; book.init(name,1990,7,7); book.print(); } //其实就跟python差不多 class Date(object): def __init__(self,day): self.day = day
派生类,其实就是子类。这种关系也就是继承。
基类或者父类就是被继承的类。
class RatePlayer:public TableTennisPlayer
RatePlayer继承了TableTennisPlayer.派生类不能直接访问基类的私有成员,必须通过基类的公有方法来访问。
构造函数:构造函数与类名相同。
析构函数:与类名相同,前面加~,特别适用于当一个对象被动态分别内存空间,而在对象被销毁的时我们希望释放它所占用的空间的时候
CRectangle::CRectangle (int a, int b) { width = new int; height = new int; *width = a; *height = b; } CRectangle::~CRectangle () { delete width; delete height; }
当没有构造函数时,可以这么写,使用指向函数的指针
TableTennisPlayer *player = new TableTennisPlayer; player->set_value("Jhon","Jack",false);//set_value就是个初始化的函数 player->Name();