C++学习笔记
鉴于C++可看作是C语言的扩展,或者说是面向对象的C语言版本。其语法方面多有类似指出,此笔记也就简要写出C++中与C不同和新增的语法部分。
当然C与C++依然算作是两种语言,此处本人小白,亦不做辩论,只在此方便笔记而已。
1、基本语法
简介
linux下C语言用gcc,C++用g++编译;C++含有对象、类、方法、即使变量等概念。
C++ 的预编译库包含了绝大多数C语言的库,自身格式略有不同
#include <iostream>
using namespace std;//使用标准的命名空间
//C语言是<stdio.h>
int main(){
cout << "hello C++";//输出语法是cout << ,有时候还要用endl;
}
- 关键字
asm | else | new | this |
---|---|---|---|
auto | enum | operator | throw |
bool | explicit | private | true |
break | export | protected | try |
case | extern | public | typedef |
catch | false | register | typeid |
char | float | reinterpret_cast | typename |
class | for | return | union |
const | friend | short | unsigned |
const_cast | goto | signed | using |
continue | if | sizeof | virtual |
default | inline | static | void |
delete | int | static_cast | volatile |
do | long | struct | wchar_t |
double | mutable | switch | while |
dynamic_cast | namespace | template |
- 三字字符
三字符组 | 替换 |
---|---|
??= | # |
??/ | \ |
??’ | ^ |
??( | [ |
??) | ] |
??! | | |
??< | { |
??> | } |
??- | ~ |
这些都是古老程序,当时为了表示键盘上没有的字符而设计的。
数据类型
bool、char、int、float、double、void、wchar_t(宽字符型),以及signed、unsigned、short、long等修饰符
- typedef定义新名称
typedef int feet;//那么就可以用feet代替int类型定义变量了
- 枚举
enum enum_name{list of names} var-list; //示例 enum color{red,green,blue} c; c = blue; //默认情况,第一个值=0,第二个=1,依次+1,也可以直接定义 enum shape {rectangle,circle=5,square} sp; //那么此时,square=6,比上一个+1.
const声明常量,成员变量自动初始化,char=‘\0’;默认初始值
有符号和无符号的修饰符
#include <iostream> using namespace std; int main(){ short int i;//有符号短整数 unsigned short int j;//无符号的 j = 50000;//赋值 i = j; cout << i << " , " << j; return 0; } //输出结果 -15536 , 50000
C++限定符
- const 常量修饰符
- volatile 告知编译器,其修饰的变量可能会被未知方式修改
- restrict修饰的指针,是一种唯一访问它所修饰对象的方式
C++存储类
auto、register、static、extern、mutable(用于对象修饰,允许对象成员代替常量,mutable成员可通过const成员修改)
String类
相比char字符类型,增加了许多常用便捷操作
引用
引用不同于指针
- 没有空引用,可以用空指针
- 一旦引用被初始化为一个对象,就不能指向其他对象,指针可以随时变向
- 引用必须创建时初始化,指针可以随时
引用使用
&
符号//变量的声明初始化 int i = 17; //声明变量i的引用 int& r = i;//成为r是初始化为i的整形引用
基本输入输出
I/O库
<iostream>、<iomanip>、<fstream>等
- 标准输出cout,输入cin
#include <iostream> using namespace std; int main(){ char str[] = "Hello C++"; cout << "Value of Str is : " << str << endl; char name[30]; cout << "Please input your name"; cin >> name; cout << "your name is : "<<name<<endl;//endl -- end line; }
- 标准错误流cerr,日志流clog
2、面向对象
对象类
class关键字
class Box { public ://还有private、protected,friend有点不同 double length; double breadth; double height; }; //声明类对象 Box box1; //然后用.符号访问类成员 box1.length
继承
C++可以多继承
//格式 class derived-class : access-specifier base-class //示例 class Rectangle : public Shape{ ... }
权限修饰符public、private、protected