c++之入门

来源:互联网 发布:618淘宝也买酒 编辑:程序博客网 时间:2024/04/30 04:02

the first day

第一天的学习了解了一些常识:

一, c++之父:本贾尼.斯特劳斯特卢普(Bjarne Stroustrup);

二, c与c++不同:

1.c是面相过程的一门语言,而c++面相对象的语言,c++中最重要的就是对象,如果非要在c和c++中找某种联系的话,可以这么认为c++约等于c加面相对象。

2.c:效率(efficiency)+灵活(flexibility)              c++:效率(efficiency)+灵活(flexibility)+抽象(abstraction)

3.c的标准头文件是#include<stdio.h>         c++的标准头文件是#include<iostream>

当然还存在其他很多不同,以后补充吧

三, c++一个简单的Helloworld程序

#include <iosream>

using namespace std;//命名空间

int main()

{

cout<<"Helloworld"<<endl;

return 0;

}

这是最简单的程序,还没用到创建类和实例化对象;

四, new和delete:这两个东西就相当于c中的malloc()和free,new在堆上创建内存空间,delete用来释放删除这个空间,例如:

int *p=new int;//分配一个int型的内存空间

delete p;


int *p=new int[10];//分配10个int型空间

delete []p;

注意:使用new在堆上创建的内存空间是匿名的,没法直接使用,因此必须用一个指针指向它。

五, c++中有默认形参,定义函数时可以给形参指定一个默认的值,如果调用函数没有给形参赋值那么就使用这个默认的值,注意:默认形参只能放在形参列表的最后,例如:

void show(int a,int b=0,int c=1)

void show(int a,int b=0,int  c)//错误,默认形参应放在最后

六, 重载:函数名称相同,但是函数参数列表不同,强调的是参数的个数,类型和顺序,以下情况不是重载

1.参数类型,顺序,个数相同,仅形参名字不同

2.参数类型,顺序,个数相同,仅返回值类型不同

void Swap(int *a, int *b)

{
    int temp = *a;
    *a = *b;
    *b = temp;
}
void Swap(float *a, float *b)

{
    float temp = *a;
    *a = *b;
    *b = temp;
}//这就是重载函数

七 ,内联函数:用一句话概括就是"空间换时间"。函数执行过程如下:

1.建立函数栈空间

2.保护现场

3.控制函数执行权利的转移

4.代码的执行

我们如果要反复调用函数时,过程1到4会消耗大量时间,这时内联函数就可以解决这个问题,它是在编译时将函数调用处用函数体替换,这样就不用浪费时间在1到4过程了,在类的内部声明的函数都会自动成为内联函数,在外部声明时需要加上inline这个关键字,而且要在函数定义处声明才有效。例如:

#include <iostream>

using namespace std;

class A

{

public:

void show()//自动成为内联函数

        {

int a=10;

cout<<a<<endl;

}

void display();

}

inline void A::display()//必须在定义处加上inline关键字才是内联函数

{

cout<<"hello"<<endl;

}

八 .类的声明用关键字class,类的名字开头字母要大写,类是由成员变量和成员函数组成,它们一起又叫做类体,类=类声明+类体,而且class和struct很像,不过struct里面没有函数,struct默认是公有的(public),而class默认是私有的(private),对象的创建离不开类,类也离不开对象。

0 0
原创粉丝点击