【发布时间】:2013-06-09 12:29:26
【问题描述】:
我是 C++ 编程的新手,以前了解过 AS3 编程。 我的问题是我无法弄清楚如何将一个新对象从一个类插入到一个数组中。
基本上我想做的是:
ClassName classArray[];
classArray[n]=new ClassName("Tekst");
这是我的代码(使用 Visual Studios 2012 C++ 编写):
#include <iostream>
#include <string>
using namespace std;
//a class holding user data
class User
{
public:
string name;
User(string nameInn)
{
//when the user is created it should get information about its name.
name=nameInn;
}
};
//array with all users
User userArr[];
int userArrLength=0; //the length of that array (dont know how to find the length of arays holding classes)
int main()
{
//the user writes down the name of all users.
cout << "Write user name. \n Write \"fin\" til finish\n";
bool hasFinished=false;
//asks you for a new user until you write fin
while(hasFinished==false)
{
string inn;
cin >> inn;
if(inn=="fin") hasFinished=true;
//here im trying to make a new user inn a new spot in the userArr.
else userArr[(userArrLength+=1)+1]=new User(inn);
}
return 0;
}
我的格式是不是错了,如果是,我该如何格式化?还是我误解了 C++ 中类的一些基本要素?
【问题讨论】:
-
你肯定在这个程序中遇到了错误。你能把它们都列出来吗?
-
我认为你必须从脑海中抹去 java 并从一些 C++ 教学书籍开始。看起来相似的东西在这里的行为完全不同
-
查看第一个示例时首先想到的是:new X() 返回指向 X 的指针,因此您需要指向 X 的指针数组而不是 X 数组。
-
@confusopoly 也许他们根本不需要
new? -
@juanchopanza 可能,但是你会得到一个默认构造的对象数组,并为你放入数组中的每个对象调用类的赋值运算符。这是我通常喜欢避免的事情,除非我知道该类正确地实现了它。编辑:nvm,该类仅包含一个 std::string 成员,因此它不会引起任何问题。
标签: c++ arrays class visual-c++