gpt4 book ai didi

c++ - 从 C++ 中的其他方法调用构造函数

转载 作者:太空宇宙 更新时间:2023-11-04 15:49:46 24 4
gpt4 key购买 nike

我不确定在 C++ 中是否合法:

class Image
{
Image(int w, int h) // constructor
{
...
}

Image GetSpecialImage()
{
Image rVal(10,10);
return rVal;
}
}

在 C++ 中我是否需要使用另一个中级 init() 方法来执行此操作?如果是,你能告诉我怎么做吗?


编辑: 尽管你说它很好,但它并没有真正做我想做的......让我给你一些更多的代码:

class Image
{
float* data;
int w;
int h;

Image(int w, int h) // constructor
{
this->w = w;
this->h = h;
data = (float*) malloc ( w * h * sizeof(float) );
}

Image GetSpecialImage()
{
Image rVal(this->w,this->h);

for(i=0;i<this->w * this->h;i++)
{
rVal.data[i] = this->data[i] + 1;
}

return rVal;
}
}

int main()
{
Image temp(100, 100);
Image result = temp.GetSpecialImage();
cout<<result.data[0];

return 0;
}

这部分有什么问题吗?

最佳答案

正如 Seth 所说,这是合法的。

为了使它更好地工作,您可以进行一些更改,即使 GetSpecialImage 成为静态函数。在类中定义的静态函数是类函数而不是对象函数。这意味着您不需要对象即可调用它。

它会被这样调用:Image special = Image::GetSpecialImage();

关于c++ - 从 C++ 中的其他方法调用构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10505425/

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