C++ 我需要“我需要”吗;这个指针;在我的课堂教学方法中?

C++ 我需要“我需要”吗;这个指针;在我的课堂教学方法中?,c++,this,this-pointer,C++,This,This Pointer,getA()&getB()和setA()&setB()之间有什么区别吗 如果它们相同,首选哪种语法 class A{ public: int x; int getA(){return x;} int getB(){return this->x;} void setA(int val){ x = val;} void setB(int val){ this->x = val;}

getA()&getB()和setA()&setB()之间有什么区别吗

如果它们相同,首选哪种语法

    class A{
    public:
        int x;

        int getA(){return x;}
        int getB(){return this->x;}
        void setA(int val){ x = val;}
        void setB(int val){ this->x = val;}

    };

    int main(int argc, const char * argv[]) {
        A objectA;
        A objectB;

        object.setA(33);
        std::cout<< object.getA() << "\n";

        objectB.setB(32);
        std::cout<< object.getB() << "\n";

        return 0;
    }
A类{
公众:
int x;
int getA(){return x;}
int getB(){返回此->x;}
void setA(int val){x=val;}
void setB(int val){this->x=val;}
};
int main(int argc,const char*argv[]{
反对者A;
A反对b;
毛(33);

std::cout在您的用例中也是一样的。如果可能,通常最好省略
这个->
,除非您有本地编码风格指南/惯例

当您有一个局部变量或参数遮挡成员变量时,这很重要。例如:

class Enemy {
public:
    int health;
    void setHealth(int health) {
        // `health` is the parameter.
        // `this->health` is the member variable.
        this->health = health;
    }
};
或者,可以通过在项目中使用命名约定来避免这种情况。例如:

class Enemy {
public:
    int health;
    void setHealth(int health) {
        // `health` is the parameter.
        // `this->health` is the member variable.
        this->health = health;
    }
};
  • 始终在成员变量后面加上
    \uu
    ,如
    health\u
  • 始终使用
    m_
    作为成员变量的前缀,如
    m_health

在您的用例中也是如此。通常最好在可能的情况下省略
此->
,除非您有本地编码风格指南/惯例

当您有一个局部变量或参数遮挡成员变量时,这很重要。例如:

class Enemy {
public:
    int health;
    void setHealth(int health) {
        // `health` is the parameter.
        // `this->health` is the member variable.
        this->health = health;
    }
};
或者,可以通过在项目中使用命名约定来避免这种情况。例如:

class Enemy {
public:
    int health;
    void setHealth(int health) {
        // `health` is the parameter.
        // `this->health` is the member variable.
        this->health = health;
    }
};
  • 始终在成员变量后面加上
    \uu
    ,如
    health\u
  • 始终使用
    m_
    作为成员变量的前缀,如
    m_health

你好,arm.u,欢迎来到stackoverflow!我建议你整理一下你的问题,让它更清楚地表明你想做什么。从表面上看,你的getter和setter是完全不同的方法,有着不同的目的,所以很难判断哪个是“首选的”.你能告诉我们更多细节吗?嗨,arm.u,欢迎来到stackoverflow!我建议你把你的问题整理一下,以便更清楚地说明你想做什么。从表面上看,你的“获取者”和“设定者”是完全不同的方法,有着不同的目的,因此很难判断哪个是“首选的”.你能告诉我们更多细节吗?