c++: 类 类型 class
封装 继承 多态
c ----> c++ 增加的机制
(1)环境:编辑 编译 运行
vim gcc ----->g++ ./xxx
.c ----->.cpp
(2)语法:
*.h ------> * stdio.h -----> iostream
c:main可以是void or int
c++:main必须是int 一定要有返回值
namespace:解决名字冲突问题
cout :output << printf()
cin :in >> scanf()
endl : '\n'
在c++ -----> c
bool: true:非0 false:0
array:
func:
(1)带默认参数的函数
double Area(double inputradius,double pi = 3.14)
(2)函数的重载
注意:返回值类型不同的 参数相同 不能进行重载
1)参数类型不同(参数顺序可以不同)
2) 参数个数不同
int max(int a,int b)
double max(double a,double b);
int max(int a,int b ,int c)
(3)函数的形参
c:值传递 :传值调用 传地址调用
int max(int a,int b)
max(4,5); max(x,y);
int max(int *px,int *py)
int x,y;
max (&x,&y)
c++:传引用
变量的别名
int a = 10;
int & r = a;//r 是a的引用
&a : 1000
&r : 1000
引用必须初始化 指针不一定要初始化
引用不会额外占用空间 指针要占用4个字节
传引用调用
类类型
struct -----> class
+ 权限访问
类 ------->人类(抽象)
对象 人
class 类型名
{
成员类型1 成员名
.......
//方法
成员函数1
......
};
1、类类型的声明
class Human
{
string name;
string DateOfBirth;
string PlaceOfBirth;
string Gender;//sex
//methods
void Talk(string TextToTalk);
void IntroduceSelf();
};
2、类类型定义变量
对象
double pi = 3.14;
class Human Tom;
Human Tom;
指针
int *pNumber = new int;
delete pNumber;
Human *pHuman = new Human();
delete pHuman;
3、访问类的成员
和结构体一样
(1).运算符
Human Tom;
Tom.DateOfBirth = 1970;//访问数据成员
Tom.IntroduceSelf();//访问方法
(2) ->
Human *pTom = new Human();
pTom->PlaceOfBirth = "zhengzhou"
pTom->IntroduceSelf();
4、权限
public private
外部访问类的权限 在类的内部没有权限之分 都是public
5、类的初始化
struct Human First = {"kevin",30}
构造函数:分配空间(操作系统) 和初始化
构造函数:
1):没有返回值
2):与类同名
3):必须放在类的公有部分(public)
实现构造函数 可以是类的内部 或者类的外部
class Human
{
public:
Human()
{
construtor
}
};
class Human
{
public:
Human();
};
构造函数是在定义对象的时候自动调用
创建对象
没有参数的构造函数 默认构造函数
没有提供构造函数 系统会自动合成一个构造函数 只分配内存 没有初始化
如果实现了构造函数 系统不会在去合成
构造函数的重载
Human::Human()
{
}
没有默认构造函数的类
有默认参数的构造函数
初始化列表来进行初始化
(1)系统合成的构造函数:没有参数 也不能初始化的构造函数
(2)显示的实现默认构造函数
(3)重载之后的构造函数
(4)有默认参数的构造函数
(5)使用初始化列表的构造函数
(6)没有默认构造函数 但是有带参数的构造函数
析构函数
和构造函数功能相反的函数 用于释放对象的空间
先构造的后析构
调用析构函数的时机:
(1)对象超出作用域的时候 会自动调用析构函数
(2)对象通过delete被删除
注意:使用new 开辟的空间 必须要delete之后才会调用析构函数
-------------------------------------------------------
(1)析构函数没有返回值
(2)与类同名 前面加上~
(3)必须没有参数
(4)必须放在类的public
(5)析构函数不能重载 而且一个类只能有一个析构函数
class Human
{
public:
~Human()
{
}
};
class Human
{
public:
~Human();
};
Human::~Human()
{
}
传值:copy
double Area(double input)
int
char
float
int a[]
int *
struct test
union
enum
class 作为函数的形参
复制构造函数
用一个对象去构造另外一个对象
如果不写复制构造函数 系统会自动合成复制构造函数
this 指针:指向该类对象的一个const指针
成员函数具有一个附加的隐含形参 与调用成员函数的对象绑定在一起
Human First ------> this : &First
const 成员函数
const 对象
const 普通变量
const 指针
const 引用
static:
局部变量
全局变量
函数
友元
friend
继承
链表 栈 队列 树
基类 派生类
fish glodfish carp tuna(金枪鱼)
mammal(哺乳动物) human elephant lion pig platpus
Bird Crow Parrot Ostrich
shape circle ploygon
ploygon Triangle(三边形)
class Base
{
base class memeber
}
class Derived : Base
{
}
class Fish
{
}
class Crap : public Fish
{
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
智能汽车嵌入式软件开发基础篇-嵌入式C++语言基础 (115个子文件)
' 438B
20_address.c 148B
test.c 86B
06_less_greater.cpp 2KB
08_array_script.cpp 2KB
07_assignment.cpp 2KB
06_private.cpp 2KB
14_sizeof_class.cpp 2KB
04_add_sub_assignment.cpp 2KB
05_protected.cpp 2KB
03_add_sub.cpp 1KB
04_virtual.cpp 1KB
05_equal_compar.cpp 1KB
13_copy_constructor.cpp 1KB
01_fish.cpp 1KB
02_Fish.cpp 1KB
02_data_char.cpp 1KB
10_destory.cpp 1KB
22_ref_const.cpp 1KB
05_overload_constructor.cpp 1KB
08_constructor_init_tab.cpp 1KB
04_overload_base.cpp 1KB
01_Fish.cpp 1KB
13_sort.cpp 1KB
10_list_insert.cpp 1KB
01_date.cpp 1001B
11_copy_constructor_inher.cpp 995B
03_Fish_constructor.cpp 961B
16_const_func.cpp 951B
01_c++_struct.cpp 922B
08_string_c++.cpp 916B
12_copy_constructor.cpp 893B
19_swap.cpp 881B
12_reverse.cpp 876B
02_virtual.cpp 854B
03_vector_insert.cpp 835B
10_func_default.cpp 832B
02_holds_pair.cpp 832B
07_constructor.cpp 825B
03_static_template.cpp 823B
04_class_constructor.cpp 804B
02_class.cpp 800B
06_no_default_constructor.cpp 780B
12_func_overload.cpp 778B
01_vector.cpp 744B
11_destory.cpp 736B
03_vft_pointer.cpp 723B
11_list_del.cpp 704B
06_platpus.cpp 695B
10_constructor_inher.cpp 685B
06_pop_back.cpp 683B
14_copy_constructor.cpp 673B
08_list.cpp 653B
07_friend_inher.cpp 632B
05_vecotr_iterator.cpp 608B
04_vector_elenment_array.cpp 602B
18_static_class.cpp 602B
14_new.cpp 596B
01_template_get_max.cpp 592B
13_new.cpp 573B
05_bool.cpp 572B
15_new.cpp 571B
19_friend.cpp 563B
20_friend_class.cpp 559B
05_virtual_base.cpp 548B
15_this.cpp 532B
17_static_class.cpp 521B
09_func.cpp 492B
09_list_insert.cpp 485B
06_array.cpp 467B
03_class.cpp 461B
07_size_cap.cpp 454B
17_ref.cpp 394B
21_square_const.cpp 376B
03_cout_cin.cpp 367B
09_operator_func.cpp 346B
02_namespace.cpp 344B
02_insert_push.cpp 332B
07_string_array.cpp 332B
09_constructor_inher.cpp 302B
08_static_inher.cpp 296B
18_square.cpp 255B
04_c++_c.cpp 253B
11_func_overload.cpp 191B
test.cpp 170B
20_address.cpp 160B
01_hello.cpp 104B
16_string.cpp 0B
settings.json 67B
a.out 18KB
a.out 9KB
a.out 8KB
a.out 8KB
a.out 8KB
a.out 6KB
a.out 5KB
polymorphism 1KB
.02_class.txt.swp 16KB
.operator.txt.swp 16KB
.polymorphism.swp 12KB
共 115 条
- 1
- 2
资源评论
智能汽车软件开发
- 粉丝: 10
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功