首页 > 编程语言 > 详细

c++中成员函数的参数名与成员变量名重合的问题

时间:2018-04-13 11:54:06      阅读:340      评论:0      收藏:0      [点我收藏+]

 

有一天写类的时候突然想到了这个问题,下面就来介绍如何解决这个问题。

定义一个类:

class test{
public:
    void setnum();
    void getnum();
private:
    int num;
};

void test::setnum(){
    num = 10;
}

void test::getnum(){
    printf("%d\n",num);
}

运行:

int main()
{
 
       test one;
       one.setnum();
       one.getnum();
   
       return 0;
}

控制台输出100,这说明成员函数可以不依靠参数传参,可以直接对成员变量进行修改

 

接下来我们可以对赋值的成员函数进行一下修改:

#include <stdio.h>

#include <windows.h>
#include <mysql.h>


class test{
public:
    void setnum(int x);
    void getnum();
private:
    int num;
};

void test::setnum(int x){
    num = x;
}

void test::getnum(){
    printf("%d\n",num);
}

int main()
{
 
       test one;
       one.setnum(100);
       one.getnum();
   
       return 0;
}

控制台输出100

 

我们再进行一下修改:

class test{
public:
    void setnum(int num);
    void getnum();
private:
    int num;
};

void test::setnum(int num){
    num = num;
}

这个时候在运行的话,发现赋值的成员函数根本就没有运行。

 

解决办法为:

void test::setnum(int num){
    this->num = num;
}

this指针来将这两变量进行区别。

c++中成员函数的参数名与成员变量名重合的问题

原文:https://www.cnblogs.com/mlgjb/p/8819410.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!