源代码:
<span style="font-size:14px;">#include<iostream> using namespace std; class Grade { public: Grade(int,int,int); void Grade_cout(); private: int c; int php; int java; } ; Grade::Grade(int a,int b,int d) { c=a; php=b; java=d; } void Grade::Grade_cout() { cout<<"c:"<<c<<"php:"<<php<<"java:"<<java<<endl; } int main() { Grade p1(100,100,100); p1.Grade_cout(); Grade p2(90,90,90); p2.Grade_cout(); return 0; }</span>注意:
①.无参数的构造函数针对的是没有输入函数的类而言的,它输入值的方法是通过对构造函数的初始化实现的,而且这个初始化必须是在对象定义的时候进行;
②.构造函数的初始化中实参必须与形参一一对应,且必须要实参的个数与形参的个数是一致的,如果不是一致的话编译时通过不了的;
③.还可以通过参数初始化表的格式对数据成员进行初始化,例如本题中的构造函数可以改为这种形式:Grade::Grade(int a,int b,int c):[c(a),php(b),java(d)]{},其中方括号是可有可不有的,大括号则是对数组的赋值;
④.对数组初始化:
class Grade { public: Grade(char mam[],int a,int b,int d):c(a),php(b),java(d) { strcpy(name,mam); } private: char name[20]; int c; int php; int java; }