码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2018-04-13 12:11:30      阅读:250      评论:0      收藏:0      [点我收藏+]

标签:成员变量   介绍   问题   main   code   ++   set   windows   修改   

 

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

定义一个类:

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++中成员函数的参数名与成员变量名重合的问题

标签:成员变量   介绍   问题   main   code   ++   set   windows   修改   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!