简体   繁体   English

在 C++ 中将对象添加到数组

[英]Adding objects to array in C++

in header.h:在 header.h 中:

before class: class Treadmill;课前:跑步机课;

private: Treadmill* treadmillList;私人: Treadmill* treadmillList;

public: bool addTreadmill(Treadmill *Obj);公共:bool addTreadmill(Treadmill *Obj);

in header.cpp:在 header.cpp 中:

Constructor: treadmillList = new Treadmill[LISTSIZE];

bool Trainee::addTreadmill(Treadmill *Obj) {
    treadmillList[numOfTreadmills++]=Obj;
}

Result of compiling:编译结果:

treadmill.cpp: In member function ‘bool Trainee::addTreadmill(Treadmill*)’:
treadmill.cpp:39:34: error: no match for ‘operator=’ (operand types are ‘Treadmill’ and ‘Treadmill*’)
  treadmillList[numOfTreadmills++]=Obj;
                                  ^
treadmill.cpp:39:34: note: candidate is:
In file included from treadmill.cpp:3:0:
treadmill.h:3:7: note: Treadmill& Treadmill::operator=(const Treadmill&)
 class Treadmill {
       ^
treadmill.h:3:7: note:   no known conversion for argument 1 from ‘Treadmill*’ to ‘const Treadmill&’

From just looking at the code you posted I think your trying to store Treadmill pointers, or addresses to Treadmill objects in an array of type Treadmill.仅查看您发布的代码,我认为您试图将 Treadmill 指针或 Treadmill 对象的地址存储在 Treadmill 类型的数组中。 If you want to store pointers to type Treadmill in an array try:如果要在数组中存储指向 Treadmill 类型的指针,请尝试:

Treadmill** treadmillList;
Constructor: treadmillList = new Treadmill*[LISTSIZE];

This is just based on what I observed though you didnt state what you were aiming for and what your problem was exactly.这只是基于我观察到的,尽管您没有说明您的目标是什么以及您的问题究竟是什么。

please try this code请试试这个代码

bool Trainee::addTreadmill(Treadmill *Obj) {
    treadmillList[numOfTreadmills++] = *Obj;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM