之前学校开C++课程的时候,只是笼统的大概讲了一下C++的一些基本语法,但都是很浅的知识。极客班的课程还能深入讲解标准库的东西,确实是课堂上学不到的。
学习C++分为语言部分和标准库的部分,在学好语言的时候,还要学习一些标准库的东西。如果作为一名C++的工程师,不会标准库的话,是没有竞争力的。所以,老师推荐的《C++ Primer》我也买来看了,确实写的很好,不愧是百科级别的书籍,但里面的很多C++11标准的一些代码,目前我的编译器还暂时识别不了。
C++代码的基本形式:
头文件:.h (自己写的头文件是双引号)
程序部分:.cpp
C语言时代,头文件是 stdio.h 或者 cstdio,输入输出用scanf和printf,写的时候可能会少符号
C++语言时代:iostream 输入输出方便许多,cin>>和cout<<
编写自己的头文件:
#ifndef 头文件名(大写)
#define 同上
#include
1.前置声明
2.类声明
3.类定义
#endif
class + 类名
{
数据成员定义在私有private里
成员函数定义在公有里,绝大多数函数都放在public里
公有和私有顺序可以交错
};
模板:
template//T为模板名
private:
T re,im;
complex c1(2.5,1.5);
complex c2(2,6);
内联函数:
在函数内部定义的是隐式内联函数
外部定义内联函数需加上 inline
inline const string & shorterString(const string &s1, const string &s2)
{
return s1.size() <= s2.size() ? s1 : s2 ;
}
创建对象会调用其构造函数
complex c1(2,1);
cout<< c1.real();
cout<< c2.imag();
不能通过对象调用私有成员
数据一定要被自己内部的函数传递出去,不能被外部的函数访问
函数如果要被外界调用的,放在公有里
函数只是做内部的处理,可以作为私有
构造函数:
函数名称与类名一致
可以用于参数
参数(实参)指定默认值
没有返回类型
利用构造函数的特殊用法:初始化形参
构造函数可以有很多个
构造函数在参数不确定但又重载的情况下,会编译错误
double reaal() const { return re; }//不会改变数据的,加上const
参数传递值时,尽量以传递引用(by reference)的方式更高效快捷方便
传递过去的时候,不希望对方改,这时要加const
友元函数:
相同的一个类内的各个部分互为友元
数据一定放在私有里
参数尽可能以引用来传
返回值也尽量以引用来传
在类的本体里的函数,应该加const的就加
构造函数特殊语法