C++输入输出、命名空间、函数重载、动态分配内存空间、字符串string和引用(C++一)

一、C++与C语言的关系

C++继承了C语言所有的语法特点(全面兼容C语言),同时在此基础上扩展了面向对象编程,泛型编程,多态,继承,模板等等特性

C语言头文件C++头文件
xxx.hxxxx.hpp或者xxx.h
.c.cpp
gcc/arm-linux-gccg++/arm-linux-g++
#include <stdio.h>#include

二、C++中的输入和输出

1.输出

#include<iostream>
using namespace std;

 cout<<变量的名字;//\n用endl替换

例:
int a=15;
float b=45.6;
cout<<a<<endl;
cout<<b<<endl;

2.输入

#include<iostream>
using namespace std;

cin>>变量的名字;  //初学者很容易弄错,容易对变量取地址

例:
cin>>a;

cin中有一个 good() 方法, 数据类型输入正确返回1 数据类型输入错误返回0

二、C++中的命名空间(名称空间)

1.引入命名空间

作用: 防止变量冲突

语法规则:

namespace  命名空间的名字
{
     成员;
}

使用:

命名空间作用域运算符
namespace  uu
{
      int  num;
}
uu::num;   //表示我要使用命名空间uu中的num

写法一: 通过命名空间的名字

uu::num

写法二: 通过使用using namespace 命名空间的名字; //声明一个命名空间

简化书写,代码中可以直接使用命名空间中变量的名字

三、C++中的函数重载(function overload)

1. 函数重载

函数重载指的是C++允许同一个函数名,具备不同的表现形式

C语言中不能在同一个程序中出现多个名字相同的函数

例:int add(int a,int b);和float add(float a,float b);

编译器如何区分不同版本的函数?

原理:从左到右去检查实参的个数和类型(不检查返回值)有没有完全匹配的,没有就报错

2. 函数重载的特点和要求

(1)函数名字必须一模一样

(2)参数的个数或者类型至少要有一个是不一样的

(3)函数重载不关心返回值类型,只关心参数个数或者类型是否不同

理论概念: 函数重载是C++中实现多态的一种手段之一,称之为编译时多态

四、C++中动态分配内存

1. C语言和C++中分配空间

C语言中:
分配堆空间 malloc() calloc() realloc()
释放堆空间 free()

C++中:
分配堆空间 new关键字
释放堆空间 delete关键字

2. 注意:

new  char(65); //等价于char *q=malloc(sizeof(char)) *q=10;
new  char[65]; //等价于char *p=malloc(65*sizeof(char));
delete  []p; //堆空间分配的多个类型大小
delete  q; //堆空间分配只有一个类型大小

五、C++中字符串string

在线的C++文档:www.cplusplus.com

C语言中表示存储字符串:
方法一: char buf[] 数组存放
方法二: char *p=malloc();
C++使用string类型表示字符串
string 字符串名字

六、C++中的引用

1. C语言和C++中传递参数的方法

C语言中传递参数只有两种方式: 传值 传地址

C++中传递参数有三种方式: 传值 传地址 传引用

引用:理解为就是变量的一个别名

语法:类型名 &引用名

两种常见的引用:

第一种:普通变量的引用

int b=58;
int  &a=b;    //定义了一个int类型的引用,名字叫做a,该引用指向b
float c=14.5;
float &d=c;  

第二种:指针的引用

int a = 56;
int *p = &a;
int *&h = p;

2.特点:

(1)引用不占用额外的存储空间,它仅仅只是变量的一个别名(它跟变量都是表示同一块内存区域)
实际用途:节约内存空间

(2)引用具备了传值和传地址的双重特性(指针和普通变量的特性都具备)

(3)引用必须定义的时候立马初始化

3.应用

(1)引用作为函数的参数(最常见),节约空间

(2)引用作为函数的返回值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Java.L

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值