初识C++

学习C++也还几天了,那就对C++做个很小很小的总结吧!其实,C++与C有很多很多的相同之处。那么今天重点说不同的地方。

一、C++的关键字

  

 可以看到,很多都是C语言中的关键字。但,其实,其实,对他们并不是很了解,甚至不知道是干嘛用的......

那么来了!!!!(大部分不是特别经常使用的关键词如下)

1.auto

C++中表示变量的自动类型推断;也就是在初始的时候根据变量初始值的类型自动为此变量选择匹配的类型。

auto x = 3; // x 为 int 类型
cout << typeid(x).name() << endl;

2.bool、true、false

bool 类型是C++ 中的基本数据结构。bool 类型只有两个取值,true 和 false。true 表示“真”,false 表示“假”。

bool 类型常用于条件判断、开关变量的值或函数返回值。(对于int最熟悉的那些就不过与解释了)

3.enum

enum 表示枚举类型,可以给出一系列固定值,实质上是 int 类型。别急,例子也有!

enum color {
    RED = 0,
    GREEN = 1,
    BLUE = 2 
};

4.union

union 是联合体类型,通过共享内存,一个union可以有多个数据成员。但在任意时刻,联合中只能有一个数据成员可以有值。要注意了,他的大小是根据,最大的成员所占内存哦!

union price {
    char x
    int y;
    double z; 
}; 

5.struct、class

class是一般的类类型,struct在C++中是特殊的类类型,声明中默认的访问权限与class不同,struct是public,class是private。

6.sizeof

sizeof 运算法用于获取数据类型占用的字节数。

7.typeid

typeid运算符可以输出变量的类型。

8.typedef

typedef 可以为现有数据类型创建一个别名,便于程序的阅读和编写。

9.static

用于声明静态变量或类的静态函数。静态变量作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为 0,使用时可改变其值。

C++ 类的成员变量被声明为 static(称为静态成员变量),意味着它被该类的所有实例所共享,也就是说当某个类的实例修改了该静态成员变量,其修改值为该类的其它所有实例所见;而类的静态成员函数也只能访问静态成员(变量或函数)。

10.public、protected、private权限修饰符。

public为公有的,访问不受限制;protected为保护的,只能在本类、派生类中访问;private为私有的,只能在本类中访问。

11.virtual

用于声明虚基类、虚函数。虚函数=0时,则为纯虚函数,纯虚函数所在的类称为抽象类。

12.override、final

override 用于表示当前函数重写了基类的虚函数。final 用于禁止类继承、禁止重载虚函数

13.operator

用于重载操作符。如下重载类Person的 == 运算法。

14.const、constexpr

const 表示所修饰的对象或变量不能被改变。constexpr 用于生成常量表达式,常量表达式主要是允许一些计算发生在编译时,而不是运行的时候。

15.using

用于在当前文件引入命名空间,例如:using namespace std;

在子类中,使用 using 声明引入基类成员名称。

16.namespace

C++标准程序库中的所有标识符都被定义于一个名为 std 的namespace中。

命名空间除了系统定义的名字空间之外,还可以自己定义,定义命名空间用关键字 namespace,使用命名空间时用符号 :: 指定。

17.inline

声明为内联函数,即在编译时将所调用的函数代码直接嵌入到主调函数中。

18.new、delete

new 用于向内存申请一段新的空间,delete 用于释放申请空间。

19.this

每个类成员函数都隐含了一个this指针,用来指向类本身。

this指针一般可以省略,但在赋值运算符重载的时候要显示使用。静态成员函数没有this指针。

20.nullptr

C++11新引入的,用来声明一个 空指针,代替NULL。

int* p = nullptr;

21.extern

当出现extern “C”时,表示 extern “C”之后的代码按照C语言的规则去编译;

当extern修饰变量或函数时,表示其具有外部链接属性,即其既可以在本模块中使用也可以在其他模块中使用。

22.friend

用于声明友元关系。

友元可以访问与其有 friend 关系的类中的 private/protected 成员,通过友元直接访问类中的 private/protected 成员的主要目的是提高效率。

友元包括友元函数和友元类。

23.template

模板,C++中泛型机制的实现。模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。模版可以分为两类,一个是函数模版,另外一个是类模版。

24.try、catch、throw

用于异常处理。try 指定 try 块的起始,try 块后的 catch 可以捕获异常,异常由 throw 抛出。

25.noexcept

C++11中,用于声明一个函数不可以抛出任何异常。

26.static_cast、const_cast、dynamic_cast、reinterpret_cast

C++类型风格来性转换:static_cast用于静态转换;const_cast删除const变量的属性,方便赋值;dynamic_cast用于将一个父类对象的指针转换为子类对象的指针或引用;reinterpret_cast将一种类型转换为另一种不同的类型。

27.register

提示编译器尽可能把变量存入到CPU内部寄存器中。

28.explicit

explicit 的作用是禁止单参数构造函数被用于自动类型转换,比较典型的是容器类型。

二、C++的命名空间

在C或者C++语言中,有很多的变量、函数。所以很有可能会发生冲突!!!还有其他种种原因,C++就引入了命名冲突的机制,来避免命名冲突,解决命名冲突的问题。(给我的感觉就有一点点的象结构体什么的)

首先来看他的雏形,

namespace 名称{

}

再看看example,

namespace  zhangnvshi{
	int a;
	int b;
}

那么a和b就是在zhangnvshi的命名下的,当然他也可以嵌套使用哦!

三、输入输出流

1.输入

cin 是标准输入设备,连续从键盘读取数据,">>"为提取运算符。

输入的使用:cin >> 变量 !!(在输入字符串的时候以空格结束哦!)

2.输出

cout 是标准输出设备,"<<"为插入运算符。

输出的使用:cout << 输出项 << endl  

#include <iostream>
using namespace std;
int main()
{
    int z;
    char c;
    cout << "输入一个常数" << endl;
    cin >> z;
    cout << "输入一个字母" << endl;
    cin >> c;
    cout << "常数为" << z << endl;
    cout << "字母为" << c << endl;
    return 0;
}

测试结果为

 注意啦!endl,最后的l不是数字1,而是英文字母的l,它的作用相当于换行。

四、C++中的for循环

和C语言几乎一样!他也有几种不同的写法。

for语句,C++中读取一个数组

void xun for ()
{
	int arr = { 1,2,3,65,5 };
	for (int i = 0;; i < 5; i++)
	{
		arr[i]*= 2;
	}
	for (int* p = arr; p < arr + 5; p++)
	{
		cout << *o << endl;
	}
}

五、指针

int* p = NULL;
int* pt = 0;

 int *pa=NULL;      初始化指针pa为空
之后可以在后面为指针pa的地址赋值            (pa=&a)
注意:不能让指针pa直接指向常量 (*pa=3;错)

Int a=0; int *pt=&a; 

//初始化指针pa指向变量a,变量a与指针pa占用同一块内存

//改变a,a和pt的值都改变 a=2;→a=2,pt=2;
//改变pt,a和pt 的值都改变 pt=2;→a=2.pt=2
//修改pt的指向,a的改变不再影响
Int *pt;pt=&a;等价于int *pt;

最后C++的入门先到这里,后续还会有的!

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值