c++学习笔记1

14 篇文章 0 订阅

C++学习笔记1,才开始看C++ Primer,就写了点自己觉得改注意的地方,这里只是C++的大概浏览。

1、C++预处理命令
__CPLUSPLUS:定义了此预处理器为C++程序
__STDC__:记录已包被编译的行数
__FILE__:包含正在被编译的文件
__TIME__:当前编译文件的编译时间
__DATE__:当前编译文件的编译日期
如:
cout<<__cplusplus<<endl;
cerr<<"Error:"<<__FILE__<<":line"<<__LINE__<<endl;
cout<<"Date:"<<__DATE__<<",Time:"<<__TIME__<<endl;

2、assert断言:
assert(条件);用来判断代码中一个必须满足的条件,既当其中条件不满足则输出诊断信息,然后结束程序。
3、/n与endl的区别:
/n:换行。
endl:在输出流中插入一个换行,并刷新输出缓冲区。
4、动态分配内存:
///
分配一个没有名字的int,初始化为256
int* point = new int(256);
释放内存
delete point;
///
 
///
动态分配数组,大小为5,无法给初始值
int* pia = new int[5];
释放内存
delete[] pia;
///
5、常成员函数:
egg:int size() const;
此函数中不能更新认为成员变量
6、重载运算符:
子类重新定义和父类一样的运算符重载,父类的这个函数必须为虚函数。(不确定,我不这样,程序报错,不知道是不是我想的这样)
7、函数的参数默认数值在声明的时候写出,定义时候不能再写出。
egg:class a
{
………….
void abc(int i = 10 );//此处给出初值
…………..
};
void a::abc(int i){…………..} //此处不能在给出
8、类模板:
模板的声明和定义只能在同一个文件中,一般模板类声明和定义都在头文件中。
ps:一般在构造函数中,要初始化一定的数据,但是可以会发生,定义了一个int型的模板,里面的初值是个字符型的常量,默认的字符型数据就不可以被赋予给int类变量。
egg:template <class T>
class a
       {
              ………………
       public:
              a(T nal = ‘a’);
              ………………
       private:
              T nal;
};
template <class T>
a<T>::a(){………….}
void main()
{
       ……………
       a<int> L;//报错
       ……………
}
PS:解决办法,可以用a(T nal = T());
一个数组类定义实现
一个数组模板类定义实现
9、名字空间:
定义:
namespace Leaf
{
……………….
class a{…………};
class b{…………};
class c{…………};
……………….
}
四种访问方式:
a、 用限定修饰名字符来访问名字空间的类型定义(::);
egg:Leaf::a A直接使用。
b、 使用using声明来访问类型定义;
egg:using Leaf ::b
       b B;只能访问到名字空间里面的b类定义
c、 使用空间别名机制来访问类型定义;
egg: namespace G = Leaf;
    G.a A;
d、 使用using指示符来访问类型定义。
egg: using Leaf
    a A; b B; c C; d D;里面的所有类定义都可以访问。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值