C++编程基础的学习

Qt跨平台特性

在深入探讨C++编程的基础知识之前,我们首先需要了解Qt框架的跨平台特性。Qt是一个功能强大的跨平台应用程序框架,它允许开发者编写一次代码,然后在多个平台上运行,包括Windows、macOS、Linux、iOS、Android等。这种跨平台能力极大地提高了开发效率和应用的可移植性。

C++基础概念

运算符

在C++中,<<被称为插入运算符,通常用于向输出流中插入数据;而>>是提取运算符,用于从输入流中提取数据。

auto关键字

auto关键字用于让编译器自动推断变量的类型。然而,形参的数据类型不能使用auto自动类型推断。

引用与指针

引用是C++中的一个重要概念,它为变量提供了一个别名。

这里取地址ref就相当于给i取个别名(引用)

使用引用时,需要注意两点:

  1. 引用必须初始化。
  2. 一旦引用被绑定到某个变量上,这种关系就无法拆解。

与指针不同,引用不能被改变,即不能重新指向另一个变量。此外,引用必须在声明时立即初始化,而指针则没有这个要求。

内联函数

内联函数是一种特殊的函数,它可以在编译时被插入到每个调用该函数的地方,从而减少函数调用的开销。使用inline关键字可以声明一个内联函数。

这里两个函数被隐含的声明为内联函数

函数默认参数

函数可以有默认参数值,如果在函数调用时没有提供这些参数,则会使用默认值。此外,函数参数可以部分提供,按照从左至右的顺序。

可以传参,不传的话是默认值

也可以指只传一个参数,从左至右传

函数重载

函数重载允许存在多个同名函数,只要它们的参数列表不同。编译器会根据提供的参数类型选择正确的函数版本。

这里会调用第一个函数

第二个fn要求传变量

这里也调第一个

这里调第二个

面向对象的四大特性

  • 抽象

  • 封装

  • 继承

  • 多态

访问控制

C++中的类成员可以有不同的访问级别:

  • public:可以被任何外部代码访问。
  • protected:可以被类本身和其子类访问。
  • private:只能被类本身访问。

通常,将公有成员放在类定义的前面,以提高代码的可读性。

类的实现

类的成员函数可以在类定义外部实现。如果类是分开文件编写的,成员函数的定义通常放在.cpp文件中。需要注意的是,函数的大小并不计入类的大小。

这种形式,可以在circle外面定义类里面的函数

类分文件写的话要写在.h文件里面

但是如果是在外面定义类型里面的函数的话要写在对应的.c文件里面

构造函数和初始化列表

C++中的构造函数可以带参数,也可以使用初始化列表来初始化成员变量。初始化列表提供了一种高效的方式来初始化对象,它只能在构造函数中使用。

Sizeof(clock)大小是12,函数并不在Clock类里占用字节

C++:可以int i(100),因为int也算一个类

类里面其实默认有clock(){

}函数的,他什么都不做

这种clock定义方法是初始化:初始化列表

这种是赋值

初始化效率高一些

只能在构造函数中使用,其他地方用不行

复制构造函数

复制构造函数是一种特殊的构造函数,用于创建一个对象的副本。如果开发者没有提供自定义的复制构造函数,编译器会生成一个默认的版本。

C2调了构造,但是不是你自己写的构造函数(复制构造、拷贝构造)

下面还有两种情况要调用复制构造

情况2

情况3

写法:

运行结果:

析构函数

析构函数是类的销毁函数,它在对象生命周期结束时被调用。析构函数不能带有参数,且析构的次数应该等于或小于构造的次数,否则可能发生内存泄漏。

析构函数:

析构次数小于等于构造次数,小于可能是内存泄露

析构函数不能带参数

总结

C++是一种功能丰富且复杂的编程语言,它提供了强大的特性来支持面向对象编程。通过理解C++的基础概念和特性,开发者可以更有效地编写高质量、可维护的代码。同时,Qt框架的跨平台特性为C++开发者提供了一个强大的工具,以创建可在多个平台上运行的应用程序。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值