[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 ...
随机推荐
- Scala:(1)变量
Scala中变量需要注意的地方: (1)val,var val 定义的声明是一个常量,不能改变内容. var定义的声明是一个变量,可以改变其内容 在Scala中,尽可能使用val val answer ...
- (转载)javascript实现弹出对话框
(转载)http://xiezezhun.iteye.com/blog/335898 简单对话框 一般常用的是 alert prompt confirm三种对话框 JavaScript代码: < ...
- ResponseHelper
using System; using System.Collections.Generic; using System.Linq; using System.Web; using Cemetery_ ...
- 手把手教你学习DSP_硬件设计
<<手把手教你学习DSP>>顾卫刚,感觉写的不错,将感兴趣的部分摘录下俩. 1.A/D保护及矫正电路 TMS320X2812 AD输入为0-3V,用上述电路可以起到钳位作用.当 ...
- UVA 10561 Treblecross(博弈论)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=32209 [思路] 博弈论. 根据X分布划分禁区,每个可以放置的块为 ...
- ubuntu错误解决。
ubuntu中出现如下错误: W: Failed to fetch http://cn.archive.ubuntu.com/ubuntu/dists/precise-backports/main/i ...
- CentOS 6.5 下安装 Redis 2.8.7(转)
转自:http://www.cnblogs.com/haoxinyue/p/3620648.html CentOS 6.5 下安装 Redis 2.8.7 wget http://download.r ...
- Cows - POJ 3348(凸包求面积)
题目大意:利用n棵树当木桩修建牛圈,知道每头牛需要50平的生存空间,求最多能放养多少头牛. 分析:赤裸裸的求凸包然后计算凸包的面积. 代码如下: --------------------------- ...
- mysql 建立表里某的个字段根据另一字段进行自增长
在设计一些数据表时,我们经常遇到这样一种情况:需要表中的一个字段根据另一字段进行自增长,比如,在数据表中存储玩家的武器信息时,需要存储玩家的武器对应的bagid,这就是一个根据玩家自己的id(玩家id ...
- poj 3294 Life Forms(后缀数组)
题意:给你最多100个字符串,求最长的且是一半以上的字符串的公共子串,如果有多个,按字典序输出. 思路:先把各个串拼起来,中间加上一个之前未出现过的字符,然后求后缀.然后根据h数组和sa数组,求出最长 ...