我需要帮助构建一个构造函数,该构造函数在实例化时会初始化相应的数据 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),我就需要构造函数在main中初始化数据:我知道构造函数必须是类似的东西
Entity::Entity(int x, int y, char icon){};
并且在主要实例化之后就会像
一样Entity pData{3,4,'1'};
但显然这对我不起作用
哦,顺便说一下,我需要一个构造函数,因为这就是作业首先要求你从doc文件中直接复制
“为Entity类编写一个参数化构造函数,用于设置x,y和icon,并在创建实例时使用它”
答案 0 :(得分:1)
Entity::Entity(int a, int b, char c)
{
x = a;
y = b;
icon = c;
};
像这样定义你的构造函数......
并称之为: -
Entity pData( 1,2,'a');
答案 1 :(得分:1)
您不需要添加构造函数,因为您的类是聚合。这可行(在修正一些错别字后)
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';
}
答案 2 :(得分:1)
您可以通过以下方式定义构造函数
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' };
没有明确定义构造函数。
答案 3 :(得分:1)
实际上你没有为你的类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;
}
`