相关疑难解决方法(0)

getter和setter,指针或引用,以及在c ++中使用的良好语法?

我想知道C++ getter和setter的良好语法.

private:
YourClass *pMember;
Run Code Online (Sandbox Code Playgroud)

我猜这个setter很简单:

void Member(YourClass *value){
  this->pMember = value; // forget about deleting etc
}
Run Code Online (Sandbox Code Playgroud)

和吸气剂?我应该使用引用还是常量指针?

例:

YourClass &Member(){
   return *this->pMember;
}
Run Code Online (Sandbox Code Playgroud)

要么

YourClass *Member() const{
  return this->member;
}
Run Code Online (Sandbox Code Playgroud)

他们之间有什么区别?

谢谢,

编辑:

对不起,我将编辑我的问题...我知道引用和指针,我问的是引用和常量指针,作为getter,它们在我的代码中会有什么区别,比如在未来,我希望什么样的shoud如果我去某种方式会失败...

所以我想我会使用const指针而不是引用

const指针不能删除或设置,对吧?

c++ getter setter pointers reference

10
推荐指数
3
解决办法
2万
查看次数

通过在C++中继承类来重命名类成员

我想"重命名"我班上的一些成员ofVec4f.

我知道在严格的C++中这是不可能的,但是我可以创建一个继承自我的类的新类并声明新成员,这些成员是别名或指向原始成员的指针吗?

我尝试了以下方法:

class ofVec4fGraph : public ofVec4f {

    public :
        float& minX;
        float& maxX;
        float& minY;
        float& maxY;

        ofVec4fGraph(float _minX,float _maxX, float _minY, float _maxY )
                    : minX(_minX), maxX(_maxX), minY(_minY), maxY(_maxY)
                    { ofVec4f(_minX, _maxX, _minY, _maxY); };

    };
Run Code Online (Sandbox Code Playgroud)

c++ inheritance alias rename class

6
推荐指数
2
解决办法
2477
查看次数

保持两个bool类成员具有相反的值

我打算有两个bool类成员(m_alive&m_dead),这样他们的值总是相反的.这可能看起来很愚蠢(事实上,它可能只是愚蠢的),但正如您在下面的代码中所看到的,但我真正想要的是根据具体情况更清楚地检查对象状态,并且没有必要输入!m_alive或者是有用的!m_dead.所以,是的,我真的不需要两个成员,但我想不出更简单的方法.

我想到的第一个想法就是创建一个函数来改变其中一个的状态,如果另一个也改变了,但我很确定需要一个更简单,更容易和更快速的方法来保持每一个这是正确的价值.

AFAIK,它不可能用它来做,define因为它会有尽可能多的不同对象,我打算创建并且看起来不实用.

#define object1.m_death= !object1.m_alive;
#define object2.m_death= !object2.m_alive;
// ...
Run Code Online (Sandbox Code Playgroud)

所以在这里你有两个成员的主要想法:

class myclass
{
    public:
    // (...)
    private:
        bool m_alive;
        bool m_death;   // Always !m_alive
};

int main()
{
    myclass myobject;
    // (...)
    if (myobject.m_dead)
    //...
    if (myobject.m_alive)   // clearer than !myobject.m_dead()
    // ...
}
Run Code Online (Sandbox Code Playgroud)

任何有关如何保持更新的建议都是受欢迎的,以及实现我的想法的任何其他方式.提前致谢!

爱德华多

PD:在重新阅读我的问题时,我想到了枚举类型.

它将强制检查dead_or_alive枚举类成员的myobject.m_status==dead或者myobject.m_status==alive,是deadalive可能的值dead_or_alive m_status.

尽管语法有点长,但这对我正在寻求的方式是否更好?


最终编辑:

感谢所有评论和回答的人.这是我最终采用的解决方案:

enum Piece_status:bool{     dead= false,    alive= …
Run Code Online (Sandbox Code Playgroud)

c++ class c++11

4
推荐指数
2
解决办法
301
查看次数

标签 统计

c++ ×3

class ×2

alias ×1

c++11 ×1

getter ×1

inheritance ×1

pointers ×1

reference ×1

rename ×1

setter ×1