[英]C++ Member Initialization List / Creating Objects In A Class
我無法使我的代碼正常工作。 我對C ++還是很陌生,但是基本上我想做的是在另一個類中創建一個類的對象。
我已經通讀了很多東西,試圖使它起作用,但是顯然我完全錯過了一些重要的步驟。
基本上調用MainWindow.load()
應該創建對象,而MainWindow.loop()
應該返回它們。 就上下文而言,在最終項目中; MainWindow.load()
將設置紋理(只需完成一次),而MainWindow.loop()
將連續繪制它們。
如果您能看一下我的示例代碼,將不勝感激:
#include <iostream>
class objects
{
private:
int n;
public:
void create (int);
int output ();
};
void objects::create(int inputn)
{
n = inputn;
}
int objects::output()
{
return n;
}
class mainwindow
{
private:
objects value1;
objects value2;
public:
void load();
void loop();
};
void mainwindow::load()
{
mainwindow() : value1.create(56),
value2.create(72){}
}
void mainwindow::loop()
{
std::cout << value1.output() << "\n";
std::cout << value2.output() << "\n";
}
int main()
{
mainwindow MainWindow;
MainWindow.load();
for(int i = 1; i <= 5; i++)
{
std::cout << "Loop " << i << ":\n";
MainWindow.loop();
std::cout << "\n";
}
return 0;
}
提前謝謝了
您可以像這樣簡單地創建對象:
void mainwindow::load()
{
value1.create(56);
value2.create(72);
}
或者,您可以在構造函數中執行此操作而不使用load函數:
mainwindow::mainwindow()
:value1(56),
value2(72)
{
}
在這種情況下,您需要編寫對象的構造函數
objects::objects(int arg = 0)
:n(arg)
{
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.