构造函数工作不正常

Constructor is not working properly

本文关键字:不正常 工作 构造函数      更新时间:2023-10-16

我需要帮助构建一个构造函数,该构造函数在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' };

而不显式定义构造函数。