目录
一、学习的知识点
C++
面向对象;特征 :抽象 封装 继承 多态
命名空间
C++标准库中的几乎所有内容都是在命名空间std中定义
#include<string>
#include<iostream> //cin cout的头文件
using namespace std; //标准的命名空间 作用 避免冲突
//自定义命名空间
namespace stu1
{
int i=5;
void print()
{
printf("%d\n",i);
}
};
namespace stu2
{
int i=10;
void print()
{
printf("%d\n",i);
}
};
//访问命名空间里面的变量或函数:命名空间::(域运算符)函数名或变量;
//作用:避免命名冲突 变量 或函数
stu1::print();
stu2::print();
域运算符
作用:
1.访问命名空间的数据 stu1::print();
2.当局部变量或全局变量出现相同时,要访问全局变量的值,使用域运算符,否则优先访问局部变量 cout<<::flag<<endl;
3.可以访问类的数据成员和函数
动态内存分配
class Staff
{
public:
Staff(); //构造函数
~Staff();//析构函数
};
Staff::Staff()
{
cout<<"构造函数"<<endl;
}
Staff::~Staff()
{
cout<<"析构函数"<<endl;
}
//动态内存分配:除了malloc之外,还可以使用new运算符
int *arr=NULL;
//arr=static_cast<int*>(malloc(sizeof(int)));
//arr=(int *)malloc(sizeof(int));
*arr=30;
free(arr);
char *name=NULL;
name=new char[20]; //new分配 20字节
strcpy(name,"cccc");
cout<<name<<endl;
delete [] name; //内存回收 如果是单个元素 delete name;
/*
1.malloc是函数 new是运算符
2.malloc与free配合使用 new与delete配合使用
3.malloc需要知道开辟的内存大小,new不需要
4.malloc有返回值,必须强转,new不需要
5.在使用new创建类对象的时候,会执行构造函数,delete的时候会执行析构函数,创建类对象时只能用new
*/
Staff *user=NULL;
user=new Staff;
delete user;
结构体位段
//C++结构体
typedef struct staff_t
{
int id:20; //:20 结构体位段 -实现内存对齐,节省内存
int role:12; //int型占据4字节32位,位段的设置不能超过基本数据类型
char name[20];
char pwd[12];
}STAFF_T;
类型转换和内联函数
- 类型转换:static_cast< int >(sum)
float sum=5.4;
cout<<static_cast< int >(sum)<<endl; - 内联函数:inline 逻辑简单 不含循环选择语句 1-5行代码 否则认为普通函数
函数重载和引用类型
- 函数重载(多态):可以出现函数名相同;形参的类型、数量、顺序要有不同;只有函数类型不同不能构成重载
- 引用类型 一种特殊的变量(也是一个地址) 相当于变量的别名,对数组只能引用数组元素,不能引用数组名(地址)
int s=4;
int &ps=s;//引用必须初始化
count<<ps<<endl;
基本数据类型
比C多了1 bool(0、1),默认为1; 2 class
bool res=0;
cout<<res<<endl;
二、上课没有听懂或者没有理解的地方
无
三、当天学习的收获
初步学习了C++基础
四、作业的思路、不会的地方
未开始
五、其他需要反馈的问题
无
六、心得体会
期待用C++实现具体功能,体会与C程序的区别。

被折叠的 条评论
为什么被折叠?



