发布网友 发布时间:2022-05-15 13:21
共3个回答
热心网友 时间:2023-10-25 00:43
//在类(class)中,你可以使用构造函数进行初始化。
class Num {
public:
int i;
};
Num sNum;
sNum.i = 100;//正确
但是,直接在定义时进行初始化会出现错误
class Num {
public:
int i = 100; // Error!错误
};
Num sNum;
而我们的确需要在构造Num类时初始化,怎么办?
我们可以使用类的“构造函数”。
构造函数的定义:
构造函数,顾名思义,即是在构造(定义)这个类时调用的函数。
在类中,一个与类名同名的函数即是该函数的构造函数。
class Num {
public:
int i;
Num (){//构造函数
}
};
Num sNum;
class Num {
public:
int i;
Num (){//构造函数
i = 1;//正确!
}
};
Num sNum;
printf ("i = %d\n", sNum.i);//正确!
类的定义:“一个类中必须有构造函数,否则,类将不能被定义。”
在你的类中,编译器如果没有发现构造函数,就会为你提供一个空的构造函数。
例① - 一定义就帮你设置好了
class OutWords{
public("无参构造函数被调用了!\n");
};
int main (void){
OutWords OW;
return 0;
}
例①的输出:
无参构造函数被调用了!
例② - 比main还要先执行
class First {
First (){
printf("First函数被执行了!\n");
}
};
First F;
int main (void){
printf("main函数被执行了!\n");
return 0;
}
例②的输出:
First函数被执行了!
main函数被执行了!
热心网友 时间:2023-10-25 00:43
class student
热心网友 时间:2023-10-25 00:43
在构造函数里面初始化。