构造函数(带有参数的)

源代码:

<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;
}



你可能感兴趣的:(构造函数)