PTA 类的声明和成员函数的实现(10 分)(this指针 )

本文详细介绍了如何设计并实现一个Car类,包含三个公共成员函数:显示欢迎信息、获取车轮数量及设置车轮数量。通过示例展示了如何在主函数中使用这些成员函数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本题要求声明和实现一个Car类,包括实现其成员函数。
要求如下:

类和函数接口定义:

1. 声明一个Car类;
2. 三个public成员函数:
(1) disp_welcomemsg(),无返回类型;
(2) get_wheels(),返回一个Car类的数据成员m_nWheels的值;
(3) set_wheels(int),用指定的形参初始化数据成员m_nWheels的值;
3. 一个私有数据成员m_nWheels,整数类型,代表汽车的车轮数量。

其中,成员函数disp_welcomemsg()显示一条欢迎信息“Welcome to the car world!”。 成员函数get_wheels()返回Car类的私有数据成员m_nWheels。 成员函数set_wheels(int)用指定的形参初始化数据成员m_nWheels

裁判测试程序样例:

#include <iostream>
using namespace std;

/* 请在这里填写答案 */

int main()
{
    int n;
    cin >> n;
    Car myfstcar, myseccar;    //定义类对象
    myfstcar.disp_welcomemsg();//访问成员函数,显示欢迎信息
    myfstcar.set_wheels(n);    //访问成员函数,设置车轮数量
    myseccar.set_wheels(n+4);  //访问成员函数,设置车轮数量
    //访问成员函数,显示车轮数量
    cout << "my first car wheels num = " << myfstcar.get_wheels() << endl;
    cout << "my second car wheels num = " << myseccar.get_wheels() << endl;

    return 0;
}

输入样例:

4

输出样例:

Welcome to the car world!
my first car wheels num = 4
my second car wheels num = 8

 实现代码如下:

class Car{
	   int m_nWheels;
	public:
		void disp_welcomemsg()
		{
			cout<<"Welcome to the car world!"<<endl;	
		}
		int get_wheels()
		{
			return m_nWheels;
		}
		void set_wheels(int n)
		{
			m_nWheels=n;
		}
}; 

 

### C++ 中外部定义成员函数的方法 在 C++ 编程语言中,可以将成员函数定义放在体之外。这种做法通常用于提高代码可读性维护性,尤其是在复杂的项目结构下[^1]。 #### 基本语法 如果要在外部定义成员函数,则需遵循以下规则: - 使用作用域解析运算符 `::` 将函数绑定到特定的上。 - 函数签名应与内的声明一致,包括返回型、参数列表等。 以下是基本形式: ```cpp class ClassName { public: ReturnType FunctionName(ParameterList); }; ReturnType ClassName::FunctionName(ParameterList) { // 函数实现 } ``` #### 示例说明 考虑一个简单的例子来展示如何在外定义成员函数: ##### 定义声明成员函数 ```cpp class Student { public: void display(); private: int num; std::string name; char sex; }; ``` ##### 在外部定义成员函数 ```cpp void Student::display() { // 使用作用域解析运算符 :: 绑定至Student std::cout << "num: " << num << std::endl; std::cout << "name: " << name << std::endl; std::cout << "sex: " << sex << std::endl; } // 此处展示了标准的外定义方法[^2] ``` 通过上述方式,在外部完成对 `display()` 成员函数的具体实现。 #### 对于模板的情况 对于涉及泛型编程的场景(即模板),其成员函数同样支持在外部定义。需要注意的是,模板成员函数定义需要显式指定模板参数。 ##### 模板及其成员函数定义示例 假设有一个模板 `Base<T>` 如下所示: ```cpp template<typename T> class Base { public: Base(T value); T getValue(); private: T data; }; ``` ###### 构造函数外定义 ```cpp template<typename T> // 显式声明模板参数 Base<T>::Base(T value) : data(value) {} // 初始化列表的应用[^4] ``` ###### 普通成员函数外定义 ```cpp template<typename T> T Base<T>::getValue() { return this->data; // 返回私有成员变量的内容 } ``` #### 特殊情况——嵌套模板成员函数 当某个成员函数本身也是模板时,必须声明两层模
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值