gpt4 book ai didi

c++ - 创建存储数组属性的对象数组

转载 作者:行者123 更新时间:2023-11-28 07:37:41 25 4
gpt4 key购买 nike

Shape.h

class Shape {

private:
string name;

public:
Shape(name);
string getName();
void setName(string);
};

三角形.h

class Triangle: public Shape {

private:
int x;
int y;

public:
Triangle(name,int[3],int[3]);
int getX();
int getY();
void setX(int);
void setY(int);
};

三角形.cpp

Triangle::Triangle(string name,int _x[],int_y[]):Shape(name) {
x[] = _x[];
y[] = _y[];

}

int Square::getX() {
return x
}

int Square::getY() {
return y;
}

void Square::setX(int _x) {
x = _x;
}

void Square::setY(int _y) {
y = _y;
}

我需要创建包含名称和 3 个点 (x,y) 的三角形。当我尝试在主 Triangle Tri[50] 上创建三角形数组时;我收到以下错误

Triangle::Triangle(std::string,int*,int*)
candidates expects 3 arguments, 0 provided
Triangle::Triangle(const Triangle&)
candidates expects 1 argument, 0 provided

请帮我检查一下我的构造函数有什么问题吗??是因为我正在创建一个存储 x 和 y 数组的对象数组吗?所以我需要为它使用引用和指针?

最佳答案

当你创建

Triangle Tri[50]; 

它将尝试调用默认构造函数来初始化Tri数组中的那些元素,但是,您没有提供这样的默认构造函数 并且您没有使用 3 个参数调用构造函数,因此,编译器会提示。

与此同时,您似乎试图在 Triangle 的构造函数中直接用另一个数组初始化一个数组:

Triangle::Triangle(string name,int _x[],int_y[]):Shape(name) {
x[] = _x[];//^^I don't understand how this will work in practice.
y[] = _y[];
}

尽管 C++ std::array (C++11 起) 有重载运算符=,但 C++ 中没有对数组的直接赋值,但这不是真的对于常规数组。

关于c++ - 创建存储数组属性的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16421976/

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