C++:使用单个 get 函数返回与对象相关的变量

标签 c++

我是一名新手程序员,从事学校的编码项目。

问题域如下:

写一个与时钟相关的C++程序

  • 定义一个名为 Clock 的类,保存在一个单独的文件中,其中包括以下成员:
    • 时、分、秒相关的三个成员变量
    • 一个访问器函数返回三个变量的值(提示:使用指针)
    • 一个修改所有变量的修改器函数(提示:使用三个参数)
    • 将每个变量加 1 的函数(提示:三个函数)
    • 重载函数以使用用户输入的值递增变量(提示:该值是函数的参数)
    • 一个将时钟设置为 0 小时 0 分 0 秒的默认构造函数
    • 将时钟设置为给定时间(小时、分钟、秒)的重载构造函数
  • 定义第二个类,保存在一个单独的文件中,其中包括
    • 一个静态成员变量
    • 一个静态成员函数
  • 在先前定义的文件中包含 C++ 代码,以确保一个类不会在主程序中加载两次
  • 定义一个主程序,保存在一个单独的文件中,
    • 实例化三个对象,一个使用Clock的默认构造函数,一个使用Clock的重载构造函数,一个基于第二类
    • 使用对象调用两个类中定义的所有函数:
    • 使用多个“cin”语句从用户那里读取所需的时间,并将这些值用作所需的相应功能的参数
    • 每个函数只调用一次,使用一个已定义的对象
    • 在每次修改 Clock 类变量的函数调用后,使用存取函数打印时间
    • 包括使用第二个类的静态成员的代码

我们在类里面做了很多例子,我们可以使用单独的 get\set 函数,但这是我们第一次尝试使用单个 get 函数和指针来做到这一点。坦率地说,我迷路了

这是我的头文件的内容:

// default class definition
#ifndef CLOCK1_H
#define CLOCK1_H

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

class Clock
{
private:
    int hours;
    int minutes;
    int seconds;

public:
    int Clock::getInitialTime();
    int Clock::setClockTime();
    Clock::Clock();             // default constructor
    Clock::~Clock();                // default destructor
};
#endif

这是我的源代码文件的内容:

// function declarations \ main program
//

#include "stdafx.h"
#include "Clock1.h"
#include <iostream>
#include <conio.h>
using namespace std;

int Clock::getInitialTime()
{
    return hours, minutes, seconds;
}

//void Clock::setClockTime(int hr,min,sec)
//{
//  hours=hr;
//  minutes=min;
//  seconds=sec;
//}


// default constructor
Clock::Clock()
{
    hours=0;
    minutes=0;
    seconds=0;
}

// default destructor
Clock::~Clock()
{
    cin.get();
    cin.get();
}

int main()
{
    Clock defaultObj;
    defaultObj.getInitialTime();
    cout << "The initial time is " << defaultObj.getInitialTime() << endl;
    return 0;
}

我正在尝试逐步实现,第一个目标是能够输出小时、分钟、秒的初始值。完成后,我可以添加带有附加参数的附加构造函数。

我的第一个猜测是我需要添加以下内容:

构造函数: 将适当的参数添加到默认构造函数

Clock::Clock(int *hourPrt, int *minutePtr, int *secondPrt)

创建指针

Clock *hourPtr;
Clock *minutePtr;
Clock *secondPtr;

将它们与对象的属性相关联

hourPrt=defaultObj.hours
minutePtr=defaultObj.minutes
secondPrt=defaultObj.seconds

getInitialTime 函数 修改一下

主函数调用 修改一下

谁能帮我解决这个问题?

谢谢

最佳答案

构造函数不是您需要更改的函数之一。从编写 void Clock::setClockTime(int hours, int minutes, int seconds) 开始,这是最简单的。


另请注意,在类内部时,不要在成员函数前加上类名前缀。

class Clock
{
public:
    Clock::Clock();             // WRONG
    Clock(); // RIGHT way to declare constructor
};

关于C++:使用单个 get 函数返回与对象相关的变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6024880/

相关文章:

c++ - 使用 boost serialize 的 Microsoft GUID 序列化?

c++ - CMake 链接错误 pthread:启用多线程以使用 std::thread:不允许操作

c++ - CMake 与 gmock

c++ - 避免非常量引用参数

c++ - argv[] 分配了多少内存?

c++ - 使用 glPointSize 的像素宽度 - 无效

C++ 成员与非成员运算符+

c++ - 初始化后如何从字符串中分配位集值

C++ 转义字符和引用变量输出困惑

c++ - 如何搭建应用层预取系统