【c++程序】构造函数

#include<iostream>
#include<string>
using namespace std;
class Person{
	string name;
    bool gender;
    int age;
    Person *lover;
public:
	Person(const char *n="无名",bool g=true);
	void growup(int years);
    void show();
};
Person::Person(const char *n,bool g/*=true*/){
	name=n;
	gender=g;
	age=0;
	lover=NULL;
}
void Person::growup(int years){
	age+=years;
}
void Person::show(){
	cout<<"大家好,我是"<<(gender?"帅哥":"美女")<<name<<",今年"<<age<<"岁。"<<endl;
}
int main(){
	Person a("芙蓉",false);
	Person b("永浩",true);
	Person c("二狗");
	Person d;
	Person e();
	a.growup(18);
	b.growup(20);
	a.show();
	b.show();
	c.growup(5);
	c.show();
	d.growup(25);
	d.show();
	e().show();
}
Person e()
{
	string name;
	bool gender;
	int age;
	cout<<"请输入姓名,性别和年龄";
	cin>>name>>gender>>age;
	Person input(name.c_str(),gender);//c_str()函数返回一个指向正规C字符串的指针, 内容与本string串相同.
	input.growup(age);
	return input;
}

时间: 2024-08-26 12:54:23

【c++程序】构造函数的相关文章

vc++如何创建程序-构造函数

如果给Animal带参,则提示没有缺省的构造函数了,缺省就是不带参数的 改进:从子类当中向基类传递代参的,这样他就会给Animal传递400,300 对一个常量来调用 #include<iostream.h>//定义一个动物类class Animal{public: //添加参数,对于一个类来说,无论带参不带参,C++都不再提供构造函数了 Animal(int height,int weight) { cout<<"animal construct"<&l

C#高级编程八十天----异常类

异常类 在C#里,异常处理就是C#为处理错误情况提供的一种机制.它为每种错误情况提供了定制的处理方式,并且把标志错误的代码预处理错误的代码分离开来. 对.net类来说,一般的异常类System.Exception派生于System.Object.还有许多定义好的异常类(例如:System.SystemExpection,SYstem.ApplicationException等),他们又派生于System.Exception类.其中System.ApplicationException类是第三方定

C#编程(八十)---------- 异常类

异常类 在C#里,异常处理就是C#为处理错误情况提供的一种机制.它为每种错误情况提供了定制的处理方式,并且把标志错误的代码预处理错误的代码分离开来. 对.net类来说,一般的异常类System.Exception派生于System.Object.还有许多定义好的异常类(例如:System.SystemExpection,SYstem.ApplicationException等),他们又派生于System.Exception类.其中System.ApplicationException类是第三方定

C#异常类相关总结

C#异常类相关总结 在做异常处理的时候,最好能在应用程序所有的入口处(事件处理函数,主函数,线程入口)使用try-catch. 但是不要在程序构造函数入口处添加try-catch,因为此处产生异常,它自己并没有能力来处理,因为它还没有构造完毕,只能再向外层抛出异常. C#异常类一.基类Exception C#异常类二.常见的异常类 1.SystemException类:该类是System命名空间中所有其他异常类的基类.(建议:公共语言运行时引发的异常通常用此类) 2.ApplicationExc

C#-WinForm-跨窗体 构造函数传值 及应用—登录式窗口传值、如何关闭主页面时关闭应用程序、如何打开唯一窗口—★★★★★五星重量级

构造函数可以传任意类型的值,并可以同时传多个值 结构函数传值的初步应用--简单的登陆式界面 现在我有两个窗体Form3和Form4,如下,如何点击Form3中的按钮后,打开Form4并将Form3中的textbox中的值传给Form4的label? 1.点击Form3中的按钮打开Form4 2.获取Form3中的值 3.传值给Form4中的label 一.获取Form3中textbox1的值 button1的点击事件: namespace 记事本 { public partial class F

黑马程序员_构造函数间的调用

这是我的第一篇博客,从这篇开始我将记录下学习java的心得体会,欢迎志同道合的朋友随时与我讨论,共同进步. 我们都知道,函数间可以互相调用.构造函数是一种特殊的函数,它用来给对象进行初始化,如果想在构造构造函数中调用另一个构造函数,分为以下两种情况: 1.子类调用父类的构造函数 先来看一段代码 1 class Person 2 { 3 public Person() 4 { 5 // 构造语句 6 } 7 } 8 9 class Student extends Person 10 { 11 pu

使用类的静态字段和构造函数,用Java程序实现类的对象的创建

一.实验要求 使用类的静态字段和构造函数,我们可以跟踪某个类所创建对象的个数.请写一个类,在任何时候都可以向它查询“你已经创建了多少个对象?”. 二.设计思路 1.创建一个类Find; 2.定义一个静态整型变量i,使其记录创建对象个数: 3.在程序中定义一个函数getNum(),令其返回计量值i: 4.输出对象创建个数. 三.程序流程图 四.源代码 public class Find { static int i; public Find() { i++;  //每创建一个类的对象i加1 } s

构造函数为什么不能是虚函数 ( 转载自C/C++程序员之家)

从存储空间角度,虚函数对应一个指向vtable虚函数表的指针,这大家都知道,可是这个指向vtable的指针其实是存储在对象的内存空间的.问题出来了,如果构造函数是虚的,就需要通过 vtable来调用,可是对象还没有实例化,也就是内存空间还没有,怎么找vtable呢?所以构造函数不能是虚函数. 从使用角度,虚函数主要用于在信息不全的情况下,能使重载的函数得到对应的调用.构造函数本身就是要初始化实例,那使用虚函数也没有实际意义呀.所以构造函数没有必要是虚函数.虚函数的作用在于通过父类的指针或者引用来

黑马程序员-Java基础-面向对象-类和对象、封装、构造函数、this、static、饿汉式&amp;懒汉式

第一讲  面向对象概念 1.  定义 相对于与面向过程而言的,将功能封装进对象,我们只关心具备了该功能的对象,而不用关注对象的具体细节. 面向对象的特点:使复杂问题简单化.我们只关心什么对象能处理什么事情,而不用关心具体的实现细节. 2.  面向对象特征 封装.继承.多态. 第二讲  类和对象的关系 1.  概述 类就是:对现实生活中事物的描述,可以是实体的事物也可以是一件事等: 对象是:是某类事物的实例,实实在在存在的个体: 映射到java中,描述就是class定义的类. 具体对象就是对应ja

Qt程序,可能会提示没有合适的默认构造函数。

使用Qt Creator或者是VS+Qt Add in插件开发Qt程序,可能会提示没有合适的默认构造函数. 是由于ui中的objectName被修改,与 namespace Ui {class Widget;}中的"Widget"名称不一致引起的: 解决办法:将ui中的objectName 改成 "Widget",就不会出现这个问题.