很抱歉,如果之前有人询问,如果是,请删除链接。 我对C ++很新。
我有一个项目要求我创建一个类似Twitter的程序;每个用户都有自己的墙,主页,朋友列表,收件箱等。问题是我必须输入一个.cpp文件;我必须将所有类放在一个文件中。现在,由于C ++从上到下阅读,我在创建/引用其他类时遇到了问题,因为它们还没有被定义。
例如,由于User包含一个由我的FriendsList类创建的对象,我必须首先放置FriendsList,但是那时我不能创建一个包含User的数组,因为User hasn&# 39;尚未确定。
对不起,如果这是一个愚蠢的问题。
编辑: 我将如何进行前瞻性声明?
class FriendsList;
class User()
{
FriendsList* friends;
//constructor and other stuff
};
class FriendsList()
{
//stuff
};
会那样吗?对不起,我只是感到困惑。
答案 0 :(得分:0)
我想我得到你的意思。他们让你把所有东西放在一个文件中是很奇怪的。所以我会做什么。如下。
class user{
string url = "homepage"
class friendList{
user currFriend;
user* nextFriend;
};
class wall{
string status = "empty status";
};
class inbox{
int number_of_messages;
};
};
我也认为这个网站可能有所帮助。 http://en.cppreference.com/w/cpp/language/nested_types
如果此帮助或不是
,请发送消息或发表评论答案 1 :(得分:0)
查找“前向定义”以根据彼此的定义解决两个类的问题。
但是......我认为这不是真正解决问题的解决方案。考虑使用std::list<>
(或vector<>
或array<>
或最适合您的需要)来保存您需要的信息。查找c ++集合,然后从那里开始
class user
{
std::list<user&> m_Friends;
std::list<std::string> m_Messages;
std::list<std::string> m_Wall;
};
答案 2 :(得分:0)
前瞻性声明是解决我的大部分问题的方法。感谢您提供有关其他替代方案的帮助和提示!