C ++类的顺序

时间:2015-09-25 01:39:57

标签: c++ class

很抱歉,如果之前有人询问,如果是,请删除链接。 我对C ++很新。

我有一个项目要求我创建一个类似Twitter的程序;每个用户都有自己的墙,主页,朋友列表,收件箱等。问题是我必须输入一个.cpp文件;我必须将所有类放在一个文件中。现在,由于C ++从上到下阅读,我在创建/引用其他类时遇到了问题,因为它们还没有被定义。

例如,由于User包含一个由我的FriendsList类创建的对象,我必须首先放置FriendsList,但是那时我不能创建一个包含User的数组,因为User hasn&# 39;尚未确定。

对不起,如果这是一个愚蠢的问题。

编辑: 我将如何进行前瞻性声明?

class FriendsList;
class User()
{
    FriendsList* friends;

    //constructor and other stuff
};
class FriendsList()
{
//stuff
};

会那样吗?对不起,我只是感到困惑。

3 个答案:

答案 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)

前瞻性声明是解决我的大部分问题的方法。感谢您提供有关其他替代方案的帮助和提示!