如何在 C++ 中获取私有变量

how to get a private variable in c++

本文关键字:变量 获取 C++      更新时间:2023-10-16
template<typename Type> class ListNode{
private:
    Type nodeData;
    ListNode *nextNode;
    friend class SingleList<Type>;
    ListNode():nextNode(NULL){} 
    ListNode(const Type item,ListNode<Type> *next=NULL):nodeData(item),nextNode(next){} 
    ~ListNode(){
        nextNode=NULL;
    }
public:
    Type GetData();
    friend ostream& operator<< <Type>(ostream& ,ListNode<Type>&);    
};

template<typename Type> Type ListNode<Type>::GetData(){
    return this->nodeData;
}
//here, compiler said 'nodeData is a private member of ListNode<int>'

编译器说"nodeData是ListNode的私有成员">

如何获取私有变量?

或 C++ 中的任何 get/set 函数,如 Java?

是的,您应该使用 get/set 方法来获取数据。

要传递实际对象,您应该使用指针或引用。

要传递副本,只需按值传递即可。

这是Java和C++在传递对象方面的主要区别。

您的 getdata 方法只返回 nodeData 的副本,这取决于您可能愿意或不这样做。如果它是一个大对象,则应通过引用来完成,否则副本就可以了。

编辑:至于它说它是一个私有变量,我不确定它为什么要这样做。我复制了您的代码并自己运行它,没有编译器错误。