从静态函数创建类对象
假设我有如下代码。
class Color
{
static Color a;
public:
static Color newColor(int r,int g,int b){
Color color;
color.setR(r);
color.setG(g);
color.setB(b);
return color;
}
}
可以使用“Color a = Color::newColor(255,0,0);”初始化静态变量“a”吗? 我想我在某处读到使用此方法创建实例将创建该类的两个实例。这样做的正确方法是什么?
Suppose I have a code as following.
class Color
{
static Color a;
public:
static Color newColor(int r,int g,int b){
Color color;
color.setR(r);
color.setG(g);
color.setB(b);
return color;
}
}
Is it alright to initialize the static variable 'a' using 'Color a = Color::newColor(255,0,0);'
I think I read somewhere that creating the instance using this method will create two instances of the class. What is the right way of doing this?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
是的,Color 被实例化为
请务必输入 Color::a = Color::newColor(255,0,0);在 cpp/cc 文件中,这意味着不在头文件中。
Yes Color gets instantiated twice
Be sure to put Color::a = Color::newColor(255,0,0); in a cpp/cc file, meaning not in a header file.
试试这个尺寸:
Try this for size: