C++入门经典 笔记 (第八章)创建基本类
2015-09-03 16:31
399 查看
前面书中介绍的内容和C语言的差不多,从这一章开始才是真正意义上的C++部分的学习。
在C++中,可以自己定义类型,以模拟要解决的问题。但是要声明一个新类型,就得创建一个类,类是新类型的定义。
C++类是一个模板,可用于创建对象。定义类后,便可以像使用其他类型那样使用它创建的对象。类是一系列捆绑在一起的变量和函数,其中的变量也可以包括其他类型或者其他类。将变量和函数捆绑在一起称为封装。通过封装,可以让其他程序能够使用类,而无需知道他的工作原理。类中的变量称为成员变量,类中的函数可以使用或修改成员变量,它们被称为类的成员函数或方法。
要声明类,可使用关键字class,并在后面加上有关成员变量和成员函数的信息。如:
class Tricycle
{
public:
unsigned int speed;
unsigned int wheelSize;
pedal();
brake();
};
上述代码创建一个Tricycle类,注意,上述声明不会给Tricycle类分配内存,只有创建了对象才会分配内存,创建对象的方法是:Tricycle Wichita;这条语句就创建了一个名为wichita的Tricycle对象。
创建对象后,可使用句点运算符(.)类访问其成员函数和成员变量。如:wichita.speed或者调用成员函数wichita.pedal();
对于刚刚声明的类的成员函数,都必须定义,也叫做实现。成员函数的定义以类名打头,然后是作用域解析运算符(::)和函数名,如:
void Tricycle ::pedal()
{
std::cout << "Pedaling trike\n";
}
类有两个特殊的函数,构造函数和析构函数,前者是每次实例化对象时都将调用它,构造函数与类同名,且没有返回值。而后者是负责执行清理工作并释放分配给对象的内存。析构函数的名称总是由颚化符号(~)和类名组成的,析构函数不接受任何参数,也不返回值。在用户没有声明构造函数或者析构函数的情况下,编译器会自动提供默认构造函数或析构函数,它们没有参数且函数体都为空,不执行任何操作。
在C++中,可以自己定义类型,以模拟要解决的问题。但是要声明一个新类型,就得创建一个类,类是新类型的定义。
C++类是一个模板,可用于创建对象。定义类后,便可以像使用其他类型那样使用它创建的对象。类是一系列捆绑在一起的变量和函数,其中的变量也可以包括其他类型或者其他类。将变量和函数捆绑在一起称为封装。通过封装,可以让其他程序能够使用类,而无需知道他的工作原理。类中的变量称为成员变量,类中的函数可以使用或修改成员变量,它们被称为类的成员函数或方法。
要声明类,可使用关键字class,并在后面加上有关成员变量和成员函数的信息。如:
class Tricycle
{
public:
unsigned int speed;
unsigned int wheelSize;
pedal();
brake();
};
上述代码创建一个Tricycle类,注意,上述声明不会给Tricycle类分配内存,只有创建了对象才会分配内存,创建对象的方法是:Tricycle Wichita;这条语句就创建了一个名为wichita的Tricycle对象。
创建对象后,可使用句点运算符(.)类访问其成员函数和成员变量。如:wichita.speed或者调用成员函数wichita.pedal();
对于刚刚声明的类的成员函数,都必须定义,也叫做实现。成员函数的定义以类名打头,然后是作用域解析运算符(::)和函数名,如:
void Tricycle ::pedal()
{
std::cout << "Pedaling trike\n";
}
类有两个特殊的函数,构造函数和析构函数,前者是每次实例化对象时都将调用它,构造函数与类同名,且没有返回值。而后者是负责执行清理工作并释放分配给对象的内存。析构函数的名称总是由颚化符号(~)和类名组成的,析构函数不接受任何参数,也不返回值。在用户没有声明构造函数或者析构函数的情况下,编译器会自动提供默认构造函数或析构函数,它们没有参数且函数体都为空,不执行任何操作。
相关文章推荐
- C语言中怎么将文件里的数据创建到(读到)链表中?
- C语言中怎么将文件里的数据创建到(读到)链表中?
- c++数组宽度计算的sizeof关于指针设想
- Effective C++ 改善程序与设计的55个具体做法 二周目笔记01
- C++ I/O流文件处理(整型,字符,字符串)
- C++智能指针原理
- C++之随笔(一)
- POJ C++程序设计 编程题#4 字符串操作
- twoSum(C++)
- 【more effective c++读书笔记】【第5章】技术(2)——限制某个class所能产生的对象数量
- 【more effective c++读书笔记】【第5章】技术(2)——限制某个class所能产生的对象数量
- c++STL容器
- C语言访问MCU寄存器的三种方式
- 【模板】c++ template模板实现string到Num的转换
- C++中泛型算法
- C语言实现冒泡排序-整数排序
- 【C/C++学院】0730-网站以及后门/结构体对齐、结构体面试分析/深拷贝与浅拷贝/队列/字符串封装
- C语言链表中数组实现数据选择排序,升序、降序功能主要难点
- C语言链表中数组实现数据选择排序,升序、降序功能主要难点
- C++中构造函数和析构函数的调用顺序