首页 > 编程语言 >C++Primer Plus对象和类的练习,练习10.10类和对象 练习2默认参数和重载

C++Primer Plus对象和类的练习,练习10.10类和对象 练习2默认参数和重载

时间:2024-05-28 14:04:56浏览次数:26  
标签:const string 练习 C++ lname Person Plus fname cout

2.下面是一个非常简单的类定义:
class Person
{
private:
static const LIMIT=25;
string lname; //Person’s last name
char fname[LIMIT]; //Person’s first namepublic :
Person()(lname=“”;fname[0]=0’;}//#1
Person(const string&ln,constchar*fn=“Heyyou”);
//#2the following methods display lname and fname
void Show()consti //firstname lastname formatvoid Formal
Show()const; //lastname, firstname format
};
它使用了一个 string 对象和一个字符数组,让您能够比较它们的用法。请提供未定义的方法的代码以完成这个类的实现。再编写一个使用这个类的程序,它使用了三种可能的构造函数调用(没有参数、个参数和两个参数)以及两种显示方法。下面是一个使用这些构造函数和方法的例子:
Person one ; //use default constructor
Person two(“Smythecraft”);//use #2 with one default argument
Person three(“Dimwiddy”,“Sam”);//use #2,no defaults
one.Show();
cout <<endl;
one.FormalShow();
//etc.for two and three

#include <iostream>
using std::string;
using std::cout;
using std::endl;
class Person
{
public:
	Person() { lname = "zhangyongjiang";fname[0] = '\0'; };
	Person(const string& ln, const char* fn = "Heyyou");
	~Person();
	void show()const;
	void formalshow()const;

private:
	static const unsigned LIMIT = 25;
	string lname;
	char fname[LIMIT];
};

Person::Person(const string& ln, const char* fn)
{
	lname = ln;
	unsigned cntstr= strlen(fn) + 1;
	strcpy_s(fname, cntstr, fn);
	
}

Person::~Person()
{
}
void Person::show() const
{
	cout << lname;
}
void Person::formalshow() const
{
	cout << fname;
}

int main()
{
	Person one;
	Person two("Smythecratft");
	Person three("Dimwiddy", "Sam");
	one.show();
	cout << endl;
	three.show();
	cout << endl;

	three.formalshow();
	one.formalshow();

	return 0;
}

标签:const,string,练习,C++,lname,Person,Plus,fname,cout
From: https://blog.csdn.net/zhyjhacker/article/details/139236413

相关文章

  • c++ rand
     在C++中,可以使用<cstdlib>头文件中的rand()函数生成随机数。这个函数会生成一个介于0和RAND_MAX(通常是32767)之间的伪随机整数。通常情况下,你可能还需要使用srand()函数来设置随机数生成器的种子。下面是一个简单的示例,展示了如何在C++中使用rand()函数生成随......
  • c/c++ 时间函数
     1time()头文件:time.h函数原型:time_ttime(time_t*timer)功能:获取当前的系统时间,返回的结果是一个time_t类型,其实就是一个大整数(long),其值表示从CUT(CoordinatedUniversalTime)时间1970年1月1日00:00:00(称为UNIX系统的Epoch时间)到当前时刻的秒数。然后调用localtime将......
  • 共享内存练习题
    设计三个程序,要求三个程序申请一块共享内存,并分别映射到各自进程的地址空间,进程A和进程B对共享内存段中的数据进行修改,然后进程C不断输出共享内存段中的数据,并观察效果,要求实现进程间的互斥,避免竞争。进程A:/******************************************************************......
  • 图像处理之计算物体的方向(C++)
    图像处理之计算物体的方向(C++)文章目录图像处理之计算物体的方向(C++)前言一、PCA获取物体主要方向1.原理2.代码实现二、Hu矩获取物体主要方向1.原理2.代码实现总结前言在图像处理中,物体的方向(倾斜角度)计算的应用非常常见,总结如下方法:PCA获得物体的主要方向以及Hu......
  • 基于C++的二叉树的创建与遍历(免费提供源码)
    下载地址如下:上传明细-CSDN创作中心项目介绍背景二叉树作为一种常见的数据结构,在计算机科学和编程实践中占有重要地位。它广泛应用于搜索算法、排序算法、表达式解析、符号表以及各种数据库索引结构中。因此,掌握二叉树的创建和遍历是计算机科学领域的一项基本技能。本项目......
  • C++中定义和声明的区别
     直接上例子在类里面声明(这里以静态数据成员和静态成员函数为例)classMyClass{public:staticintstaticDataMember;//静态数据成员的声明staticvoidstaticFunction();//静态成员函数的声明//其他成员...};在cpp文件中定义 静态成员的声明......
  • 【c++基础(三)】类和对象中--构造和析构函数
    1.前言本章重点本篇文章着重讲解类中的两个默认函数,分别为:构造函数,析构函数这是c++六个默认成员函数中的两个(其他四个在后面章节讲解) 我们平时在写基础的数据机构时,例如栈和队列如果自己没有注意没有进行初始化,就有可能导致出错,同理,在写完代码后,忘记销毁开辟好......
  • c++函数
    哈喽大家好,我是@菜就多练,输不起,就别玩,今天我来和大家分享函数函数就是在主函数上方的位置写,但也可以在下面写,常见函数类型有intdoubleboolstringchar.......不同函数类型它们的用法也不同,有判断的(bool),有计算的(intlonglong double),还有字符串的(charstring)等等等等那......
  • c++ 类型转换
     ========在C++中,类型转换(typeconversion)是将一个数据类型的变量转换为另一个数据类型的变量的过程。类型转换可以分为隐式转换(implicitconversion)和显式转换(explicitconversion)。下面详细介绍C++中的类型转换方式。隐式转换隐式转换也称为自动类型转换,是由编译器自动......
  • c++动态内存管理干货
     c++兼容c所以之前C语言使用的方式在c++中同样可以使用,但c++给出了更加简便的动态内存管理方法.1.申请内置类型空间c++定义了新的关键字new和delete(都是操作符不是函数),使用方法如图:需要注意的是,用new申请空间默认不会初始化,但是可以初始化。如图:另外,【】里面可以是变量:......