C++学习之旅

知识点1【qt creater的安装】基本上一路next
1、双击可执行文件


知识点2【Qt创建c++工程】

 

 

 

 

c++工程创建成功

 

 

 


知识点3【qt creater编译c++工程注意项】

 

1、运行结果 在windows的控制台中 输出。


2、中文输出是乱码(minGW == mini gnu for widows)默认编码格式 是linux的UTF8 需
要设置系统的编码格式 system

 注意:从 新建的 工程开始生效 当前工程 无效的。

3、qtcreater 假死

 将电脑的显卡配置成集显
 

 
知识点4【c++的第一个程序】

//i input 输入 o output输出 stream流 输入输出流头文件(类似stdio.h)

#include <iostream>

//std(标准) 使用标准的命名空间

using namespace std;

//有且只有一个主函数 可以有多个其他函数

int main(int argc, char *argv[])
{
//cout 输出 类似 c语言的printf
//endl 类似 c语言的 换行符
// printf("Hello 你好!\n");
//cout代表的输出设备

cout << "Hello 你好!" << endl;//将字符串输出到 控制台

//cin代表的是输入设备

int num =0;
cin >> num;//将建键盘输入的数据 赋值给 num
cout<<"num = "<<num<<endl;
return 0;
}

注意:
1、c++系统头文件风格 iostream, c语言的头文件比如string.h 在c++工程 可以写成
string.h或cstring
2、c语言 是弱语法 语言(很多警告 可以忽略 正常执行),c++强语法语言(很多C语言中
的警告 在c++中直接报错)
3、c面向过程:面向过程编程思想的核心:功能分解,自顶向下,逐层细化(程序=数据结
构+算法)
程序=数据结构+算法
数据结构:就是对数据的存储方式(指的是数据类型:char short int long flaot
struct unoins 数组、链表)
算法:就是对存储好的数据 进行分析的步骤。(操作数据的步骤 == 功能函数)
4、面向对象编程:在面向对象中,算法与数据结构被看做是一个整体,称作对象
对象 = 算法 + 数据结构
程序 = 对象 + 对象 + ……


知识点5【c++的三大特性】

        封装:把客观的事务抽象成一个类(将数据和方法打包在一起,加以权限的区分,达到保护
并安全使用数据的目的)


        继承:继承所表达的是类之间相关的关系,这种关系使得对象可以继承另外一类对象的特征
和能力
目的:避免公用代码的重复开发,减少代码和数据冗余。


        多态:多态 多态性可以简单地概括为“一个接口,多种方法”,字面意思为多种形态。程序
在运行时才决定调用的函数,它是面向对象编程领域的核心概念。


知识点6【c++对c的扩展】


1、::作用域运算符(表明 数据、方法 的归属性问题)

using namespace std;

int a = 10;//全局变量
void test01()
{
    int a = 20;//局部变量
    cout<<"局部变量a = "<<a<<endl;//优先选择局部变量

//::作用域运算符(c++独有)

    cout<<"全局变量a = "<<::a<<endl;//取全局变量

}


2、命名空间 namespace 解决命名冲突
2.1:namespace命名空间的定义

//定义一个名字为A的命名空间(变量、函数)
namespace A {
    int a = 100;
}
namespace B {
    int a = 200;
}
void test02()
{
//A::a a是属于A中
    cout<<"A中a = "<<A::a<<endl;//100
    cout<<"B中a = "<<B::a<<endl;//200
}


2.2:命名空间只能全局范围内定义
2.3:命名空间可嵌套命名空间

namespace A {
    int a = 1000;
    namespace B {
        int a = 2000;
    }
}
void test03()
{
    cout<<"A中的a = "<<A::a<<endl; //1000
    cout<<"B中的a = "<<A::B::a<<endl; //2000
}


2.4:命名空间是开放的,即可以随时把新的成员加入已有的命名空间中(常用)
2.5:命名空间 可以存放 变量 和 函数
2.6:命名空间中的函数 可以在“命名空间”外 定义
2.7:无名命名空间,意味着命名空间中的标识符只能在本文件内访问,相当于给这个标
识符加上了static,使得其可以作为内部连接(了解)
2.8:给命名空间 取个别名(了解)

namespace veryLongName{

    int a = 10;

void func(){ cout << "hello namespace" << endl; }
}
void test(){
    namespace shortName = veryLongName;
    cout << "veryLongName::a : " << shortName::a << endl;
    veryLongName::func();
    shortName::func();
}


知识点7【using 使用命名空间】
1、简化了从命名空间的成员访问
2、using 使用整个命名空间
3、using 指明使用具体的命名空间 成员。(了解)

        using直接使用 命名空间中的成员 会和 局部变量冲突


4、using声明碰到函数重载(了解)
5、不同命名空间中的 同名成员 使用的时候注意 二义性

namespace A {
    int a = 10;
}
namespace B {
    int a = 20;

}

void test09()

{

//此处的a 不知道是A还是B中a

//cout<<"a = "<<a<<endl;//err

//解决方法
    cout<<"A::a = "<<A::a<<endl;//100
    cout<<"B::a = "<<B::a<<endl;//200

}

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值