鱼C论坛

 找回密码
 立即注册
查看: 1382|回复: 1

【新手】C++类中定义函数的问题

[复制链接]
发表于 2016-1-24 13:20:31 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zooo 于 2016-1-24 16:46 编辑

当函数的形参和类中变量的名字相同时,就无法给属性赋值,为什么会出现这种情况?
类中的函数是如何对类的成员进行操作的?
  1. #include <iostream>
  2. class Car
  3. {
  4.         public:
  5.         std::string color;
  6.         std::string engine;
  7.         int liter;//油量
  8.         int wheel;
  9.         void setColor(std::string color);
  10.         void setEngine(std::string eng);
  11.         void setWheel(int wel);
  12. };
  13. void Car::setColor(std::string /*calr*/color)
  14. {
  15.         color = color;
  16.         //color = calr;
  17. }
  18. void Car::setEngine(std::string eng)
  19. {
  20.         engine = eng;
  21. }
  22. void Car::setWheel(int wel)
  23. {
  24.         wheel = wel;
  25. }
  26. int main()
  27. {
  28.         Car mycar;
  29.         mycar.setColor("Black");
  30.         mycar.setEngine("V8");
  31.         mycar.setWheel(4);
  32.         std::cout<<"Color is:"<<mycar.color<<"\n";
  33.         std::cout<<"Engine is:"<<mycar.engine<<"\n";
  34.         std::cout<<"The num of wheel:"<<mycar.wheel<<"\n";
  35.         return 0;
  36. }

复制代码


运行结果
sshot-1.png
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2016-1-24 23:19:50 | 显示全部楼层
void Car::setColor(std::string /*calr*/color)

{

        color = color;

        //color = calr;

}

你觉得这里的color 应该指这个成员函数的形参color还是数据成员color?通过你的实验证明了color = color;
这句的两个color都是形参color,这时要使用数据成员color只能用
this->color = color;也就是说this->color是指数据成员color
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-21 20:26

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表