如何更改类中成员函数中的值?

Posted

技术标签:

【中文标题】如何更改类中成员函数中的值?【英文标题】:How to change a value in a member function within a class? 【发布时间】:2018-01-28 00:17:30 【问题描述】:

我正在尝试更改已传递给我的 SwingPool 类的值。我正在尝试将长度、深度和宽度值相乘以获得我的容量值。但是,当我尝试使用我的容量成员函数来执行此操作时,它会返回一个垃圾值。我认为我的语法是正确的,所以我不确定为什么我会得到一个垃圾值。下面是我的代码。

这是我的实现文件。

#include <iostream>
#include "SwimmingPoolHeader.h"
using namespace std;

int main()

swimmingPool len;
swimmingPool wid;
swimmingPool dep;
swimmingPool cap;

int length;
int width;
int depth;

cout << "Please enter the length of the pool." << endl;
cin >> length;
len.setLength(length);

cout << "Please enter the width of the pool." << endl;
cin >> width;
wid.setWidth(width);

cout << "Please enter the depth of the pool." << endl;
cin >> depth;
dep.setDepth(depth);


cout << "The capacity of the pool is " << cap.capacity() << endl;

system("pause");
return 0;

这是我的头文件。

class swimmingPool 
public:

    void setLength(int l)
    
        length = l;
    
    int getLength()
    
        return length;
    

    void setWidth(int w)
    
        width = w;
    
    int getWidth()
    
        return width;
    

    void setDepth(int d)
    
        depth = d;
    
    int getDepth()
    
        return depth;
    

    int capacity()
    
        return length * depth * width;
    
private:
int length;
int width;
int depth;
;

【问题讨论】:

/OT 有趣的个人资料。您是如何保持 1 分代表、1 枚金牌徽章、3 枚银牌和 5 枚铜牌的?除此之外,您的问题题外话,对不起。 您的班级有 4 个不同的实例。你要一个吗。您可以考虑添加一个构造函数来将您的成员变量初始化为 0; 在我看来您需要a couple of good beginners books 才能阅读。 不要误会,但你的设计似乎依赖于巫术。忽略你有三个不同的游泳池,每个游泳池都有一个一维这一事实,你有第四个游泳池,你似乎认为它会被某种同情的魔法赋予这些价值,也许当编译器使用它的 AGI 从变量的名称(以及它对游泳池的知识)推断您的意图。尽管这个程序很简单,但它依赖于您忽略学习的一些软件基本原理。在尝试这个之前,您必须掌握更简单的练习。 你的程序相当于测量一个水池的长度,开车到另一个地方测量另一个水池的宽度,去别的地方测量另一个水池的深度,最后访问第四个池并猜测其总容量。可能您的意思是只处理一个游泳池,这意味着您应该只有一个 swimmingPool 对象。 【参考方案1】:

你知道什么是构造函数吗?为什么不在创建swingPool对象的时候加上长宽深参数呢?

swimmingPool(int l = 0, int w = 0, int d = 0) : length(l), width(w), depth(d) 

然后,您可以像这样创建一个游泳池:

swimmingPool pool(6, 7, 8);

【讨论】:

【参考方案2】:

你可能想用类似的东西替换你的main()

int main()

    int length, width, depth;

    cout << "Please enter the length of the pool." << endl;
    cin >> length;

    cout << "Please enter the width of the pool." << endl;
    cin >> width;

    cout << "Please enter the depth of the pool." << endl;
    cin >> depth;

    swimmingPool pool;
    pool.setLength(length);
    pool.setWidth(width);
    pool.setDepth(depth);

    cout << "The capacity of the pool is " << pool.capacity() << endl;

    return 0;

【讨论】:

以上是关于如何更改类中成员函数中的值?的主要内容,如果未能解决你的问题,请参考以下文章

对类中的成员函数的定义和声明最后添加一个const是什么意思?

java中怎么样调用父类中的成员变量的值?谢谢!!!

如何在不使用类名作为范围的情况下获取类中成员函数的地址?

如何访问不在基类中的派生类中的 STL 类的成员函数? (正文中的详细解释)

C++点滴----关于类常成员函数

C++ 类中的静态成员变量,静态成员函数