C++,请向Python用户解释类?

xxx*_*xxx 2 c++

我正在尝试学习C++,感谢这篇文章,我发现C++和Python以及Javascript之间存在许多相似之处:http://www.cse.msu.edu/~cse231/python2Cpp.html

但我根本无法理解C++类,它们看起来像Javascript原型,但并不那么容易.

例如:

//CLxLogMessage defined in header

class myLOG: public CLxLogMessage{
  public:
    virtual const char *    GetFormat (){
            return "Wavefront Object";
    }

    void    Error (const std::string &msg){
            CLxLogMessage::Error (msg.c_str ());
    }

    void    Info (const std::string &msg){
            CLxLogMessage::Info (msg.c_str ());
    }

 private:
    std::string     authoringTool;
};
Run Code Online (Sandbox Code Playgroud)

问题:这是什么公共/私人的东西!?

编辑:老实说,我比Python更喜欢C++,因为我可以学习所有内容的真实含义,而不是简单的自动命令,例如我更喜欢单独使用"int X"而不是"X".

谢谢

Set*_*gie 5

myLOG是类的名称.它继承(查找2)CLxLogMessage并具有函数GetFormat(virtual可以通过子类重写并通过基类指针调用,查找2)Error,和Info.它的数据成员authoringTool是一个字符串.

publicprivate东西访问说明.该private部分中的某些内容只能由类的成员函数使用,并且该public部分中的内容可供任何人使用.还有另一种类型的部分被调用protected,这意味着只有一个类及其子类可以访问它,但没有其他人1.

如果您开始向类添加内容而不先设置访问级别,则默认为private.

你可以有很多public,privateprotected部分只要你想,以任何顺序.

您需要这些不同的保护级别,因为您不希望其他人在您不了解数据时弄乱您的数据.例如,如果你有一个代表分数的类,你就不希望有人将分母改为你的鼻子下方的0.他们必须通过一个setter函数来检查新值是否有效,然后再将分母设置为它.这只是一个微不足道的例子.Python没有这些的事实是语言设计的一个缺点.

如果你读过C++书,你的所有问题都会得到解答.使用C++没有简单的方法.如果你试图拿一个,你最终将成为一个可怕的C++程序员.

1你可以通过将它们声明为s 来让其他人访问privateprotected成员friend(查找2).

2很抱歉说"查找"这么多,但是我放在这里的信息太多了.你必须找到这些东西的好资源.