我正在用C ++做一个Klondike游戏,这是我的课程:
class Card
{
public:
enum Kind
{
H = 1,
D = 2,
S = 3,
C = 4
};
Card(Kind p_sorte, Value p_valeur);
virtual ~Card();
private:
Kind m_sorte;
Value m_valeur;
};
我想知道为什么eclipse会在这种情况下提出两个私有属性:
Klondike.h - >
#include "Card.h";
class Klondike
{
Klondike();
}
Klondike.cpp - >
Klondike::Klondike()
{
Card c = Card(H, ACE);
cout << c.m_sorte;//THIS SHOULDN'T BE! But eclipse Is telling its fine?!?
}
答案 0 :(得分:3)
提议 他们!
但这并不意味着它们能够被使用。如果你注意到,他们左边有一个红色标志。他们这样做,所以程序员可以完整地看到班级。
请注意i
如何用绿色标记标记,因为它是公开的,my_precious
标有红色标记,因为它是私有的。
当然,当我写道:
a.my_precious;
我得到了这个:
错误:'int A :: my_precious'是私有的
那么,它没用吗?并不是的。考虑朋友类。在这种情况下,我很乐意在编码时看到朋友类的数据成员!
例如:
class Node
{
private:
int data;
int key;
// ...
friend class BinaryTree; // class BinaryTree can now access data directly
};
取自Alex Allain。