C++的初步知识(2)
2015-11-05 19:24
579 查看
1、类和对象的关系
类是对象的抽象,而对象是类的具体实例。
类是抽象的,不占用内存,对象是具体的,占用存储空间。
2、struct声明的类,如果对其成员不作private或public的声明,系统默认为public。如果想分别指定私有成员和共用成员,则应用private和public作显示声明。
class声明的类,如果对其成员不作private或public的声明,系统默认为private。如果想分别指定私有成员和共用成员,则应用private和public作显示声明。
3、为了减少时间开销,如果在类体中定义的成员函数中不包括循环等控制结构,C++系统自动地对它们作为内置(inline)函数来处理。类内定义的成员函数,可以省略inline。类体外定义的成员函数如果想要被指定为内置函数,需要用inline在前面做显式声明。inline
void Student::display( ){ }
4、类声明头文件是用户使用类库的公用接口。类声明和函数定义一般放在两个文件。
一个C++程序是由3个部分组成:
(1)类声明头文件(xxx.h)
(2)类实现文件(xxx.cpp)
(3)类的使用文件(xxx.cpp)
5、不能在类声明的时候对数据成员进行初始化
calss Time{
int hour = 0;
//错误
int min = 0;
int sec = 0;
};
类不是一个实体,而是一种抽象类型,不占用存储空间,无处容纳数据。
6、构造函数的名字必须与类名同名,不具有任何类型,不返回任何值,是公用成员。
7、采用带参数的构造函数,在调用不同对象的构造函数时,从外面将不同的数据传递给构造函数,以实现不同的初始化。
#include <iostream>
using namespace std;
class Box{
public:
Box(int,int,int);
int volume();
private:
int height;
int width;
int length;
};
Box::Box(int h,int w,int l)
{
height = h;
width = w;
length = l;
}
int Box::volume()
{
return height*width*length;
}
int main()
{
Box box1(10,20,30),box2(1,2,3);
cout<<"box1's volume is "<<box1.volume()<<endl;
cout<<"box2's volume is "<<box2.volume()<<endl;
return 0;
}
8、构造函数的重载
#include <iostream>
using namespace std;
class Box{
public:
Box();
Box(int,int,int);
int volume();
private:
int height;
int width;
int length;
};
Box::Box()
{
height = 10;
width = 10;
length = 10;
}
Box::Box(int h,int w,int l)
{
height = h;
width = w;
length = l;
}
int Box::volume()
{
return height*width*length;
}
int main()
{
Box box1;
//Box box1();错误
Box box2(1,2,3);
cout<<"box1's volume is "<<box1.volume()<<endl;
cout<<"box2's volume is "<<box2.volume()<<endl;
return 0;
}
9、析构函数
析构函数不是删除对象,而是在撤销对象占用的内存之前完成的一些清理工作,使这部分内存可以被程序分配给新对象使用。
析构函数不返回任何值,没有函数类型,没有函数参数。
先构造的后析构,后构造的先析构。先进后出。
10、对象数组
#include <iostream>
using namespace std;
class Box{
public:
Box();
Box(int,int,int);
int volume();
private:
int height;
int width;
int length;
};
Box::Box()
{
height = 10;
width = 10;
length = 10;
}
Box::Box(int h,int w,int l)
{
height = h;
width = w;
length = l;
}
int Box::volume()
{
return height*width*length;
}
int main()
{
Box box1;
Box b[3] = {
Box(1,2,3),
Box(4,5,6),
Box(7,8,9)
};
cout<<"box1's volume is "<<box1.volume()<<endl;
cout<<"b[0]'s volume is "<<b[0].volume()<<endl;
cout<<"b[1]'s volume is "<<b[1].volume()<<endl;
cout<<"b[2]'s volume is "<<b[2].volume()<<endl;
return 0;
}
类是对象的抽象,而对象是类的具体实例。
类是抽象的,不占用内存,对象是具体的,占用存储空间。
2、struct声明的类,如果对其成员不作private或public的声明,系统默认为public。如果想分别指定私有成员和共用成员,则应用private和public作显示声明。
class声明的类,如果对其成员不作private或public的声明,系统默认为private。如果想分别指定私有成员和共用成员,则应用private和public作显示声明。
3、为了减少时间开销,如果在类体中定义的成员函数中不包括循环等控制结构,C++系统自动地对它们作为内置(inline)函数来处理。类内定义的成员函数,可以省略inline。类体外定义的成员函数如果想要被指定为内置函数,需要用inline在前面做显式声明。inline
void Student::display( ){ }
4、类声明头文件是用户使用类库的公用接口。类声明和函数定义一般放在两个文件。
一个C++程序是由3个部分组成:
(1)类声明头文件(xxx.h)
(2)类实现文件(xxx.cpp)
(3)类的使用文件(xxx.cpp)
5、不能在类声明的时候对数据成员进行初始化
calss Time{
int hour = 0;
//错误
int min = 0;
int sec = 0;
};
类不是一个实体,而是一种抽象类型,不占用存储空间,无处容纳数据。
6、构造函数的名字必须与类名同名,不具有任何类型,不返回任何值,是公用成员。
7、采用带参数的构造函数,在调用不同对象的构造函数时,从外面将不同的数据传递给构造函数,以实现不同的初始化。
#include <iostream>
using namespace std;
class Box{
public:
Box(int,int,int);
int volume();
private:
int height;
int width;
int length;
};
Box::Box(int h,int w,int l)
{
height = h;
width = w;
length = l;
}
int Box::volume()
{
return height*width*length;
}
int main()
{
Box box1(10,20,30),box2(1,2,3);
cout<<"box1's volume is "<<box1.volume()<<endl;
cout<<"box2's volume is "<<box2.volume()<<endl;
return 0;
}
8、构造函数的重载
#include <iostream>
using namespace std;
class Box{
public:
Box();
Box(int,int,int);
int volume();
private:
int height;
int width;
int length;
};
Box::Box()
{
height = 10;
width = 10;
length = 10;
}
Box::Box(int h,int w,int l)
{
height = h;
width = w;
length = l;
}
int Box::volume()
{
return height*width*length;
}
int main()
{
Box box1;
//Box box1();错误
Box box2(1,2,3);
cout<<"box1's volume is "<<box1.volume()<<endl;
cout<<"box2's volume is "<<box2.volume()<<endl;
return 0;
}
9、析构函数
析构函数不是删除对象,而是在撤销对象占用的内存之前完成的一些清理工作,使这部分内存可以被程序分配给新对象使用。
析构函数不返回任何值,没有函数类型,没有函数参数。
先构造的后析构,后构造的先析构。先进后出。
10、对象数组
#include <iostream>
using namespace std;
class Box{
public:
Box();
Box(int,int,int);
int volume();
private:
int height;
int width;
int length;
};
Box::Box()
{
height = 10;
width = 10;
length = 10;
}
Box::Box(int h,int w,int l)
{
height = h;
width = w;
length = l;
}
int Box::volume()
{
return height*width*length;
}
int main()
{
Box box1;
Box b[3] = {
Box(1,2,3),
Box(4,5,6),
Box(7,8,9)
};
cout<<"box1's volume is "<<box1.volume()<<endl;
cout<<"b[0]'s volume is "<<b[0].volume()<<endl;
cout<<"b[1]'s volume is "<<b[1].volume()<<endl;
cout<<"b[2]'s volume is "<<b[2].volume()<<endl;
return 0;
}
相关文章推荐
- C语言自动识别文本编码
- [C++11] 顺序存储的完全二叉树构造树形结构
- [C++11] 二叉树的实现
- C语言解析.XML文件
- 指针数组与数组指针------C++学习笔记
- c++primer第九章习题(5)
- c++中的继承
- C++:类的多态与虚函数的使用
- 如何创建一个不确定长度的数组
- 【window10下notepad++编辑器安装与配置C和C++(支持C++primer)】
- 大端小端,,,A和a的ascii码
- sizeof相关的笔试题
- 一道关于内存分配的笔试题
- BOOL,float,指针变量与零值的比较
- C++注释规范
- c++学生成绩管理系统
- C语言基本类型之long long int
- C语言积累
- C语言------宏定义的使用
- C++虚函数的作用