[C++]C++类基本语法
本测试代码包括以下内容:
(1)如何使用构造函数;
(2)默认构造函数;
(3)对象间赋值;
(4)const使用语法;
(5)定义类常量: 一种方法是用enum,另一种方法是使用static。
#include <iostream> using namespace std; enum sexType
{
MAN,
WOMAN
}; class Human
{
//the default is private
private:
string name;
sexType sex;
int age; //(5) 定义类常量: 一种方法是用enum,另一种方法是使用static
enum{LEN=};
static const int LEN2 = ; public:
//如果类定义中没有提供任何构造函数,则编译器提供默认构造函数。但,如果类中定义了构造函数,那么编写者必须同时提供一个默认构造函数。
//有两种方法提供默认构造函数:
//(1) 定义一个没有参数的构造函数:Human();
//(2) 为非默认构造函数的参数提供默认值: Human(string m_name="no name", int m_age=0, sexType m_sex=MAN);
//两种定义方式只能二选一
Human();
Human(string m_name, int m_age, sexType m_sex);
Human(int m_age);
~Human(); //定义在类声明中的方法为内联方法。也可以使用inline关键字将函数定义在类声明外部。
void show() const //const加在函数名后面表示该函数不会修改该类的数据成员。
{
cout<<"This is "<<name<<", sex: "<<sex<<", "<<age<<" Years old."<<endl;
} }; Human::Human()
{
cout<<"default construct function"<<endl;
} Human::Human(string m_name, int m_age, sexType m_sex)
{
cout<<"construct function: "<<m_name<<endl;
name = m_name;
age = m_age;
sex = m_sex;
} Human::Human(int m_age)
{
age = m_age;
} Human::~Human()
{
cout<<"destroy function: "<<name<<endl;
} int main()
{
cout << "This is test code of C++ class: "<< endl;
{
//(1) use of construct function
Human jack = Human("Jack", , MAN); //显示调用
Human jerry("Jerry", , MAN); //隐式调用
Human *pTom = new Human("Tom", , MAN); //New调用
//当构造函数只有一个参数时,可以直接用赋值语句赋值。只有一个参数的构造函数将会被自动调用
Human marry = ; //赋值调用 //(2) defaults construct function
Human Lucy; //(3) 赋值对象
Human James;
James = Human("James", , MAN); //创建一个临时对象James,copy一份儿该对象赋值给James变量。紧接着该临时对象会被销毁。 //(4) const
const Human Thomas("Thomas", , MAN);
Thomas.show(); //The show method must define with 'const'
}
return ;
}
运行结果为:
[C++]C++类基本语法的更多相关文章
- go类c语法
go类c语法 一般来说,如果一门语言具有类c语法,意味着当你习惯使用其他类c语言例如c.c++.java.javascript和c#,然后你就会发现go语言和它们也类似,至少表面上是.例如,使用&am ...
- ES2015 类 class 语法
在ES2015之前,定义类的方法只能通过原型链来模拟 function Animal(family,species) { this.family = family; this.species = sp ...
- python类的语法和底层实现
语法: class 类名: name = “egon” # 类属性 def __init__(self): self.age = 18 # 对象属性 self.__sex = "fe ...
- C# 面向对象2 (类的语法)
1.类 语法: [public] class 类名 { 字段; 属性; 方法; } **类名首字母必须大写 2.创建对象 创建这个类的对象过程称之为类的实例化,关键字:new this:表示当前这个类 ...
- 什么是静态内部(Static Inner)类,语法要注意什么?
4静态内部类(Static Inner Classes) 马克-to-win:这里的内部类的static,意思是它可以不用实例化外部类,就自己单独被实例化,单独存在(有点像生活中的办公室和办公桌(独立 ...
- 类模板语法知识体系梳理(包含大量常犯错误demo,尤其滥用友元函数的错误)
demo 1 #include <iostream> #include <cstdio> using namespace std; //template <typenam ...
- 【c++错误】类的语法错误 error c2533:constructors not allowed a return type(构造函数不允许返回一个类型)
今天编写类的程序的时候不小心把类后的分号忘写了,就出现上面的错误提示. 顺便复习下类的正确格式: class 类名 { public: //习惯上将公有类型放在前面,便于阅读 ……(外部接口) pro ...
- python 类高级语法 静态方法
通过@staticmethod装饰器即可把其装饰的方法变为一个静态方法,什么是静态方法呢?其实不难理解,普通的方法,可以在实例化后直接调用,并且在方法里可以通过self.调用实例变量或类变量,但静态方 ...
- 【yml】springboot 配置类 yml语法
参考:https://www.runoob.com/w3cnote/yaml-intro.html YAML 是 "YAML Ain't a Markup Language"(YA ...
随机推荐
- HashMap循环遍历方式及其性能对比
主要介绍HashMap的四种循环遍历方式,各种方式的性能测试对比,根据HashMap的源码实现分析性能结果,总结结论. 1. Map的四种遍历方式 下面只是简单介绍各种遍历示例(以HashMap为 ...
- 通过 PowerShell 支持 Azure Traffic Manager 外部端点和权重轮询机制
Jonathan TulianiAzure网络 - DNS和 Traffic Manager高级项目经理 在北美 TechEd 大会上,我们宣布了 Azure Traffic Manager将支持 ...
- 【转】Ubuntu14.04搭建安装svnserver
原文网址:http://www.cnblogs.com/blfshiye/p/5168028.html 前两天,公司准备搭建一个svnserver,供大家使用.于是.就先装了一个Ubuntu系统,然后 ...
- HTMLTestRunner生成空白resault.html
发现一奇葩问题,用idle或pyscripter执行脚本,生成的是空白html,通过cmd,进入脚本目录执行python xx.py,却能生成测试报告. HTMLTestRunner 例子 #codi ...
- Oracle LOB
Oracle LOB Oracle .NET Framework 数据提供程序包括 OracleLob 类,该类用于使用 Oracle LOB 数据类型. OracleLob 可能是下列 Oracle ...
- [置顶] 获取激活码,激活myeclipse
myeclipse10.0 正式版下载地址: http://downloads.myeclipseide.com/downloads/products/eworkbench/indigo/instal ...
- poj3252 Round Numbers
Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 7625 Accepted: 2625 Des ...
- Delphi TWebBrowser
Delphi WebBrowser控件的使用 WebBrowser控件属性:1.Application 如果该对象有效,则返回掌管WebBrowser控件的应用程序实现的自动化对象(IDis ...
- mybatis0207 resultType、resultMap、延迟加载使用场景总结
延迟加载: 延迟加载实现的方法多种多样,在只查询单表就可以满足需求,为了提高数据库查询性能使用延迟加载,再查询关联信息. mybatis提供延迟加载的功能用于service层. resultType: ...
- percona-MYSQLGUI监控
1.https://www.percona.com/blog/2016/05/26/monitoring-with-percona-app-for-grafana/ http://pmmdemo.pe ...