构造函数工作不正常
Constructor is not working properly
我需要帮助构建一个构造函数,该构造函数在main()。
#include <iostream>
using namespace std;
class Entity{
public:
int x, int y, char icon; };
int main(){
Entity pData;
pData.x=4; pData.y=3, pData.icon='1';
cout<<pData.x<<'n'; cout<<pData.y<<'n'; cout<<pData.icon<<'n';
}
我列举了一个我只需要的例子。。。不需要包括所有的程序。无论如何,我需要构造函数在实体的实例(pData)创建后立即初始化主数据:我知道构造函数必须像一样
Entity::Entity(int x, int y, char icon){};
一旦在主体中实例化,它将是类似的东西
Entity pData{3,4,'1'};
但显然这对我不起作用
哦,顺便说一句,我需要一个构造函数,因为这就是任务首先要做的,你可以直接从文档文件中复制
"为Entity类编写一个参数化构造函数,设置x、y和icon,并在创建实例时使用它"
实际上,您还没有为类Entity
定义构造函数(但编译器已经为您定义了它,但它只为Entity
的成员变量分配内存)
class Entity {
public:
int x,y;
char icon;
Entity(int _x, int _y,char _icon)
{
x=_x;
y=_y
icon=_icon;
}
};
int main()
{
Entity obj(4,3,'I');
return 0;
}
`
Entity::Entity(int a, int b, char c)
{
x = a;
y = b;
icon = c;
};
这样定义你的构造函数。。。
并称之为:-
Entity pData( 1,2,'a');
您不需要添加构造函数,因为您的类是一个聚合。这将工作(在修复一些打字错误后)
class Entity
{
public:
int x, y;
char icon;
};
#include <iostream>
int main()
{
using std::cout;
Entity pData{3,4,'1'};
cout << pData.x <<'n';
cout << pData.y <<'n';
cout << pData.icon <<'n';
}
例如,您可以通过以下方式定义构造函数
class Entity{
public:
Entity( int x, int y, char icon ) : x( x ), y( y ), icon( icon ) {}
int x, int y, char icon;
};
像一样使用
Entity pData( 4, 3,'1' );
或
Entity pData { 4, 3,'1' };
或
Entity pData = { 4, 3,'1' };
考虑到对于您最初的类定义,您可以编写
Entity pData = { 4, 3,'1' };
而不显式定义构造函数。
相关文章:
- 不确定要在我的main中放入什么才能使我的代码正常工作
- C++中的memset函数工作不正常
- 为什么 HeapFree() 不能正常工作?
- 如果不在窗口 10 中声明名为 openCV 的 openCV namedWindow,QT 图像显示将无法正常工作
- 通用线程池类工作不正常
- 循环仅对第一行正常工作.其他行不受 for 的影响
- 为什么在C++中使用关系运算符创建的模板函数不能对字符串正常工作?
- C++自定义删除运算符不能正常工作?
- 为什么使用 exec() 重新启动程序不能正常工作?
- C++:返回本地对象,但不能正常工作
- 名为DLL的C++windows服务程序工作不正常
- C++-循环中的If语句工作不正常
- 为什么带lcov的codecov在Travis上不能正常工作,而在我当地的Linux Mint上却不能正常工作
- While循环和if/else语句工作不正常
- 为什么sizeof函数在这里不能正常工作
- 异步操作的 Asio 处理程序在其同步对应项正常工作时不会调用
- C++:最大数组值函数工作不正常
- 图像上的按钮不正常工作在QT
- 透明SDL2游戏(WIN32色键不正常工作)
- Qt 5.3 QSystemTrayIcon不正常工作[Linux]