注意事项1、在创建对象时由系统自动调用构造函数,且只执行一次;2、构造函数不能被用户调用例: datel.DateO;-非法3、构造函数无返回值错误,不能有返回类型void Date::DateOyear = 1900;month = 1;day = 1;
1、在创建对象时由系统自动调用构造函数,且只执行 一次; 2、构造函数不能被用户调用; 例:date1.Date(); -非法 3、构造函数无返回值; void Date::Date() //错误,不能有返回类型 { year = 1900; month = 1; day = 1; }
注意事项4、构造函数的作用是使对象进行初始化,尽量别加无关内容;5、若用户未定义构造函数,则系统会自动生成一个默认的构造函数,但函数体是空的6、在创建对象时,有几个对象就会调用几次构造函数void fn()对象数组调用51次构造函数Desk dd[5] ;Stool sa;
4、构造函数的作用是使对象进行初始化,尽量别加无 关内容; 5、若用户未定义构造函数,则系统会自动生成一个默 认的构造函数,但函数体是空的。 6、在创建对象时,有几个对象就会调用几次构造函数。 void fn( ) { Desk dd[5] ; Stool sa; } 对象数组调用5 次构造函数
12.3构造函数的使用例12-5:类的数据成员可能为另一个类的对象class Recorderclass HiFi/ /.public:] ;...class Cdplayerprotected:Recorder re;//Cdplayer cd;1 ;class AmplifierAmplifier am;Tunertu;1 ;class Tuner/ /.1;
例12-5:类的数据成员可能为另一个类的对象 class Recorder { //. } ; class Cdplayer { //. } ; class Amplifier { //. } ; class Tuner { //. } ; class HiFi { public: //. protected: Recorder re; Cdplayer cd; Amplifier am; Tuner tu; } ;
12.3构造函数的使用,如果一个类对象是另一个类的数据成员,则在创建那个类的对象所调用的构造函数中,对该成员(对象)自动调用其构造函数。ch12-2.cpp:学生类对象和老师类对象#include<iostream>using namespace std;class StudentYpublic:Student()【//构造函数cout<<"constructingstudent.In"semesHours= 100;gpa = 3.5;
• 如果一个类对象是另一个类的数据成员, • 则在创建那个类的对象所调用的构造函数中, • 对该成员(对象)自动调用其构造函数。 ch12-2.cpp:学生类对象和老师类对象 #include <iostream> using namespace std; class Student { public: Student( ) { //构造函数 cout <<"constructing student.\n"; semesHours = 100; gpa = 3.5; }
12.3构造函数的使用//其他公共成员private:intsemesHours;float gpa;1 ;class Teacher[public:构造函数Teacher(cout<<"constructingteacher.In",1
//其他公共成员 private: int semesHours; float gpa; } ; class Teacher { public: Teacher( ) { //构造函数 cout <<"constructing teacher.\n"; } } ;