gpt4 book ai didi

c++ - 为类变量赋值

转载 作者:太空狗 更新时间:2023-10-29 23:30:19 25 4
gpt4 key购买 nike

部分代码如下:

class A{
private :
int a, b;
public :
A(int x):a(x),b(a*a){}
int getA(){
return a;
}
int getB(){
return b;
}
};

int main(){
A a=13;
printf("%d %d\n", a.getA(), a.getB() );
return 0;
}

A a=13 行,我不明白它是如何调用构造函数的,为什么?我认为没有关于转换的任何定义并且不会被编译,但它运行良好并调用了构造函数。

最佳答案

这称为隐式声明。当您编写 A a=13; 时,您的编译器足够聪明,可以识别您真正的意思是 A a(13); 因为您 声明了一个以 int 作为参数的构造函数。如果您不希望这种情况发生,请在您的构造函数之前放置一个 explicit 关键字,然后您将得到编译器错误,除非您编写 A a(13); 而不是A a=13;

关于c++ - 为类变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26428903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com