栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C++基础知识一

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C++基础知识一

一、面向对象概述
1.1 c++发展
1998开始,c++98 -> c++03 -> c++11 -> c++14

1.2 应用范围
1)应用软件开发 2)游戏开发 3)多媒体开发 4)人工智能 5)底层驱动 6)图形界面

1.3 面向对象和面向过程
C语言:面向过程,以过程为中心,强调做算法,特点是以函数为单位,数据从一个函数流向另一个函数。
C++:面向对象,是以事物为中心的编程,封装成一个个的类,维护的代码期待更少。

1.4 c++与C语言的比较
c++是从C语言演化而来的,C语言是过程式编程语言,以过程为中心,以算法为驱动。而c++是面向对象的编程方式,以对象为中心,以消息为驱动的编程方式,这是c++在C语言上的最大改进。

1.5 面向对象的三要素
封装:把一类事物抽象封装成类,并且可以把自己的类中的数据和函数只让可信的类或者对象操作,对不 可暴露的接口进行隐藏;
继承:指类与类之间的关系,一个类可以继承另一个类。
多态:多种形态,简单的说就是一个接口,多种方法,程序在运行的时候才决定调用哪一个函数。

二、
2.1

#include     //c++标准输入输出流
using namespace std;   //声明标准命名空间

int main(int argc, char const *argv[])
{
    cout<<"hello world!"< 

2.2
作用域限定符(::)

#include 
using namespace std;

int num = 100;

int main(int argc, char const *argv[])
{
    int num = 999;
    cout<<"num = "<< num << endl;

    //::作用域限定符号,主要作用于操作全局变量或者类或者函数
    cout<<"num2 = "<<::num< 


2.3 命名空间
2.3.1 目的
为解决多个小组合作开发时,或者不同代码段之间命令冲突的问题,c++引入了命名空间的概念
命名空间将全局作用域分成不同的部分。

2.3.2 使用
1)语法

namespace Li
{
	//变量,函数,类,宏定义等等
}

2)使用

#include 


using namespace std;

namespace zhangsan
{
  int num = 333;
  void fun()
  {
    std::cout<<"你好,张三"< 

2.6 结构体
C语言中结构体不允许内部定义函数,而c++中允许允许结构体中定义函数,且c++中认为结构体是一种全新的数据类型,不需要加struct(看代码)

#include 
using namespace std;

struct Chinese
{
    char name[32];
    void fun()
    {
        printf("%s 是一个中国人n",name);
    }
};

int main(int argc, char const *argv[])
{
    Chinese ch = {"zhangsan"};    //c++中认为结构体是一种全新的数据类型,不需要加struct

    ch.fun();    //c++结构体具有一定的封装性,一定程度上保护了自己的成员
    return 0;
}

2.7 bool类型
C语言中想要判断真假,只能用0和1;但是c++中引入两个关键词true和false。
bool类型的用法:
1)占一个字节
2)bool类型只有两个取值,-----true和false(编译器内部也还是1和0)
3)用途:推荐使用bool类型来表示逻辑运算,关系运算和开关变量的值。

#include 
using namespace std;

int main(int argc, char const *argv[])
{
    bool a = true;
    cout<<"a = "< 


2.10 c++引用
c++提供了给变量取别名的机制,就是引用,引用是C++对C的一种扩充
注意:typedef是给类型取别名,不能对变量进行重命名。
引用的定义类似于指针,只是用&取代了*,语法格式:
type &name = data

#include 
using namespace std;

struct test
{
    int &a;     //相当于常指针,大小占8字节
    int &b;
    char &c;
};

int main(int argc, char const *argv[])
{
	int a = 100;
    int b = 200;

    cout<<" a = "<< a <<" b = "<< b < 

函数重载的二义性

#include 
using namespace std;

void Add(int a, int b)
{
    cout< 

2.19 C++的动态分配内存
1)new 和 delete 的基本用法
C语言:使用malloc 和 free
C++:malloc和free可以用,但是C++提供了一个专门的分配方式: new 和delete
区别:
C语言中,malloc和free是一个函数,返回值类型是(void *),不可以初始化
C++中:new和delete是一个关键字,返回值类型为申请对象的类型,可以初始化。

#include 
using namespace std;

int main(int argc, char const *argv[])
{
    int *p = new int; //分配了一个int类型的内存空间,返回值类型是(int*)
    *p = 100;

    cout<<"*p = "<<*p< 


2.20 多维数组的创建和释放

#include 
using namespace std;

//申请二维数组
int main(int argc, char const *argv[])
{
    int **a = new int *[5];

    for(int i = 0; i < 5; i++)
    {
        a[i] = new int[6];
        
    }

    //使用delete释放,只要将顺序反过来
    for(int i = 0; i < 5; i++)
    {
        delete []a[i];
        a[i] = NULL;
    }

    delete []a;
    
    a = NULL;

    return 0;

}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/783768.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号