我的最终目标是实现一个串口上位机。 直奔主题: 1.Hello World的程序代码 [mw_shl_code=cpp,true]//包含两个类
#include <QApplication>
#include <QLabel>
int main(int argc, char *argv[])
{
//QApplication 对象,管理 Qt 程序的生命周期,开启事件循环,必须的
QApplication app(argc, argv);
//建一个 QLabel 对象,构造函数赋值“Hello, world”
QLabel label("Hello, world");//涉及的C++知识:类、构造函数
//调用 QLabel的 show()函数将“Hello, world”显示出来
label.show();//涉及的C++函数:通过类对象调用public属性的成员函数
//开启事件循环,相当于while(1)
return app.exec();
}[/mw_shl_code] 2.C++加油站
2.1 什么是类 类的关键字为“Class”,可以理解为数据类型的一种,只不过这种数据是自己构造的。其实“Class”和“Struct”很类似,只不过,“Class”多了一个“private”属性。 类的定义: class 类名 { private: 私有成员变量、私有成员函数; protected: 保护成员变量、函数; public: 公共成员变量、函数; }; 例程: [mw_shl_code=cpp,true]// ConsoleApplication5.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <iostream>
using namespace std;
//创建一个类,相当于创建一个数据类型
class cal{
private://私有成员变量、函数,只能在类内访问
float arg1;
float arg2;
float sum;
public://公有成员变量、函数,可在.c文件任何地方访问
void input(float a, float b)
{
arg1 = a; //在类内给私有变量赋值
arg2 = b; //在类内给私有变量赋值
}
void calculate()
{
sum = arg1 + arg2;
cout << "sum = " << sum << endl; //在类内访问私有成员变量
}
};
int _tmain(int argc, _TCHAR* argv[])
{
cal float_cal;//声明一个类对象
float_cal.input(1.32, 2.35);//调用public成员函数
float_cal.calculate();
while (1);
return 0;
} [/mw_shl_code] 补充:上面的例子“在类的内部定义了成员函数”,现在讲述另外一种定义成员函数的方法:“在类的外部定义成员函数” [mw_shl_code=cpp,true] 格式:
返回类型 类名::成员函数名(参数)
{
函数体;
} [/mw_shl_code] 点一下:“::”这个符号为“作用域操作符” 修改上面的例子: [mw_shl_code=cpp,true]// ConsoleApplication5.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <iostream>
using namespace std;
//创建一个类,相当于创建一个数据类型
class cal{
private://私有成员变量、函数,只能在类内访问
float arg1;
float arg2;
float sum;
public://公有成员变量、函数,可在.c文件任何地方访问
void input(float a, float b);
void calculate();
};
//在类的外部定义类成员函数
void cal::input(float a, float b)
{
arg1 = a; //在类内给私有变量赋值
arg2 = b; //在类内给私有变量赋值
}
//在类的外部定义类成员函数
void cal::calculate()
{
sum = arg1 + arg2;
cout << "sum = " << sum << endl; //在类内访问私有成员变量
}
int _tmain(int argc, _TCHAR* argv[])
{
cal float_cal;//调用带参构造函数初始化私有成员变量
float_cal.input(1.23, 5.36);
float_cal.calculate();
while (1);
return 0;
} [/mw_shl_code] 2.2 what is "对象" 定义一个类,并且申明一个变量,该变量即为“对象”。类就是数据类型,是用户定义的数据类型,对象可以看成
某个类的实例(某个类的变量) 。类比:int是数据类型,int a是实例。
2.3构造函数 构造函数的作用是给私有成员变量赋初值。下面,讲解的是“带参构造函数" 带参构造函数格式: [mw_shl_code=cpp,true] 类名(参数)
{
函数体;
} [/mw_shl_code] 使用方法: 类名 对象名(参数);//该类对象会调用构造函数进行私有成员的初始化 例子: [mw_shl_code=cpp,true]// ConsoleApplication5.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <iostream>
using namespace std;
//创建一个类,相当于创建一个数据类型
class cal{
private://私有成员变量、函数,只能在类内访问
float arg1;
float arg2;
float sum;
public://公有成员变量、函数,可在.c文件任何地方访问
//重写构造函数(可传参数)
cal(float a, float b)
{
arg1 = a; //在类内给私有变量赋值
arg2 = b; //在类内给私有变量赋值
}
void input(float a, float b);
void calculate();
};
void cal::input(float a, float b)
{
arg1 = a; //在类内给私有变量赋值
arg2 = b; //在类内给私有变量赋值
}
//在类的外部定义类成员函数
void cal::calculate()
{
sum = arg1 + arg2;
cout << "sum = " << sum << endl; //在类内访问私有成员变量
}
int _tmain(int argc, _TCHAR* argv[])
{
cal float_cal(1.11,2.66);//调用带参构造函数初始化私有成员变量
float_cal.calculate();
while (1);
return 0;
} [/mw_shl_code]
|