C++基础

一、环境配置

选择Visual Studio 2017版本

安装参考软件管家

二、编译链接过程

三、简要

3.1 创建一个项目

 

 

打印"Hello world"

#include<iostream>
using namespace std;

int main()
{
    cout << "fine" << endl;
    system("pause");
    return 0;
}

分文件编程:

main.pp

#include<iostream>
using namespace std;

void Log(const char* message);
int main()
{
    //cout << "fine" << endl;
    Log("this");
    system("pause");
    return 0;
}

log.cpp

#include<iostream>


void Log(const char* message)
{
	std::cout << message << std::endl;
}

  编译:将头文件复制粘贴到文本里面进行转义为obj文件

  链接:将obj链接到所有的东西之中,主要由main文件串联,但是入口处也可能不是main

3.2 变量

存储在空间之中,区别是所占字符的大小

   无符号:在32位系统之中,第一位是符号位,之后的31位是数据
   有符号:unsigned ,即32位全是数据,没有符号位

可以通过sizeof 来查看字节大小

3.3 常量

3.4 关键字

static :静态常量,避免全局变量出现

 

#include <iostream>

void Function()
{
	 int i = 0;
	i++;
	std::cout << i << std::endl;
}

int  main()
{	
	Function();
	Function();
	Function();

	std::cin.get();
}

 

  

 

#include <iostream>

void Function()
{
    static int i = 0;
    i++;
    std::cout << i << std::endl;
}

int  main()
{    
    Function();
    Function();
    Function();

    std::cin.get();
}

 

枚举

给特定值命名,不用在个各种地方处理变量,默认第一个定义的元素是

#include <iostream>

enum Example :unsigned char
{
    A,B,C
};
int  main()
{    
    Example value = B;
    if(1 == value)
    {
        std::cout << value << std::endl;
    }

    std::cin.get();
}

 

 

3.5 标识符命名规则

四、数据类型

4.1整型

4.2实型

4.3字符型

4.4字符串型

4.5布尔型

4.6sizeof关键字

4.7数据的输入

五、运算符

5.1 算数运算符

5.2 赋值运算符

5.3 比较运算符

5.4 逻辑运算符

六、程序流程结构

6.1 选择结构

6.2 循环结构

for(; ;)

#include<iostream>
using namespace std;

void Log(const char* message);
int main()
{
    float variable = 5.5f;
    double var = 5.2;
    for(int i =0 ;i<5 ;i++)
    { 
        std::cout << variable << std::endl;
    }
    std::cin.get();

    return 0;
}

 

do while()

while()

 continue:结束此次的运行

#include<iostream>
using namespace std;

void Log(const char* message);
int main()
{
	float variable = 5.5f;
	double var = 5.2;
	for(int i =0 ;i<5 ;i++)
	{ if(i%2 == 0)
		std::cout << variable << std::endl;
	    std::cout <<i <<std ::endl;
	    continue;
	}
	std::cin.get();

	return 0;
}

  

break :终止全部的运行

#include<iostream>
using namespace std;

void Log(const char* message);
int main()
{
	float variable = 5.5f;
	double var = 5.2;
	for(int i =0 ;i<5 ;i++)
	{ if(i%2 == 0)
		std::cout << variable << std::endl;
	    std::cout <<i <<std ::endl;
	    break;
	}
	std::cin.get();

	return 0;
}

  

return 结束这个语句

return 结束整个代码

 

 

6.3跳转结构

七、数组

7.1一维数组

7.2二维数组

八、函数

8.1 函数定义

分文件思想:

主要作用是检查重复出现,当多次引用的时候,不会重定义

1.                            

#pragma once 

 

#pragma once

void InitLog();
void Log(const char* message);

 

2.

#ifndef _LOG_H
#define _LOG_H


void InitLog();
void Log(const char* message);

#endif

 析构函数:

为啥用:

#include <iostream>

class Entity
{
public:
    float X, Y;
    void Print()
    {
        std::cout << X << Y << ", " << Y << std::endl;
    }
};

int  main()
{    
    Entity e;
    std::cout << e.X << std::endl;
    e.Print();
    std::cin.get();
}

 

8.2 函数的调用

8.3 函数的声明

8.4 函数的分文件编写

九、指针

9.1 指针的基本概念

指针只是一个地址,保存地址的变量,指针的类型,只是限制它有多少内存

#include<iostream>
using namespace std;

#define LOG(x) std::count << x <<std::endl


int main()
{
    int var = 8;
    int* ptr = &var;
    *ptr = 90;
    std::cout<< ptr << std::endl;
    std::cin.get();

    return 0;
}

引用

9.2 指针变量的定义与使用

9.3 指针占用内存空间

9.4 空指针和野指针

9.5const和修饰指针

9.6 指针和数组

9.7 指针和函数

9.8 指针、数组、函数

十、结构体

10.1结构体的基本概念

10.2 结构体的定义与使用

10.3 结构体数组

10.4结构体指针

10.5结构体嵌套结构体

10.6 

十一、类

和结构体基本无区别,就是在写的时候,有一些权限的限制,默认情况下在类中,他的属性是private,不可以被外部访问,而结构体的默认属性是public;还有的区别就是类更容易继承

#include<iostream>
class Log {
public:
    const int LogLevelError = 0;
    const int LogLevelWarning = 1;
    const int LogLevelInfo = 2;
    

private:
    int m_LogLevel = LogLevelInfo;
public:
    void setLevel(int level)
    {
        m_LogLevel = level;
    }

    void Error(const char* message)
    {
        if(m_LogLevel >= LogLevelError)
        std::cout << " [WARNING]:" << message << std::endl;
    }

    void warn(const char* message)
    {
        if (m_LogLevel >= LogLevelWarning)
        std::cout << " [WARNING]:" << message << std::endl;
    }

    void Info(const char* message)
    {
        if (m_LogLevel >= LogLevelInfo)

        std::cout << " [WARNING]:" << message << std::endl;
    }
};

int main()
{
    Log log;
    log.setLevel(log.LogLevelWarning);
    log.warn("Hello!");
    std::cin.get();
}

 

posted @ 2023-07-23 21:00  thankunext  阅读(18)  评论(0)    收藏  举报