码迷,mamicode.com
首页 > 其他好文 > 详细

QT 基础语法

时间:2020-01-08 23:14:40      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:输出   对象销毁   自动调用   递归   --   设置   com   open   设备   

函数:定义

数据类型 函数名(参数列表)
{
函数体
}
函数调用, 函数递归, 函数参数,函数返回值(类型指针和值), 函数指针, 变参函数

函数重载(函数名相同,函数参数列表不同) —编译器检查函数的时候同时检查函数名和参数列表
—强类型(指针,引用赋值类型必须一致) add(int , int) add(double, double)
Int a =10;
Char* p = (char*)&a;
isqrt(int i); dsqrt(double i); —C语言
sqrt(int i) ; sqrt(double i); sqrt(float i); ----c++语言 函数重载
sqrt(10); sqrt(10.1);—c++默认的浮点型是double

使用方便–函数调用自动根据参数调用对应的函数
函数重载依据:函数名相同,函数参数列表不同(个数不同,类型不同),const(参数是引用,或者是指针),函数返回值不能作为函数重载依据

练习:用函数重载实现打开lcd设备(多种方式打开设备) 在ubuntu字符界面测试 ctrl+alt+f1
int open()
int open(const char *dev)

——————————————————————————————————
函数默认参数
int open(const char *dev=”/dev/fb0”, int flag=0);
函数调用的可以

int fd = open(); --没有带参数,那么就用默认参数
int fd = open(“/dev/fb1”); —带有参数,那么就用传入的参数
默认参数规定,从左到右从哪个参数开始默认,那么这个参数后面的参数必须全部默认
open(“/dev/fb0”,1);
函数重载与函数默认参数 (函数重载可以用默认参数来”替代”)

面向过程-----面向对象
面向过程:过程步骤划分,
面向对象:功能划分

面向过程
下五子棋游戏:开启–白子–画棋子-判断(输赢)-黑子–画棋子–判断—》结束
在电脑上玩游戏: 开机----安装游戏—登入游戏—玩---退出—卸载—关机

面向对象
下五子棋游戏:棋子,棋盘, 规则(白棋–把要落棋的位置告知棋盘,再把数据给规则对象, )
在电脑上玩游戏: 电脑(开机, 关机, 安装,卸载), 游戏(玩,登录, 退出)

类与对象
类-----(棋子, 棋盘, 规则) 对象—(黑棋,白棋)
类:具有相同的属性或特征的事或物抽象为类(人, 狗)
对象:类的实例化(张三, 旺财(狗))

类定义:
class 类名
{
成员变量(属性)
成员方法(成员函数,行为)
};

设计人的类—自定义数据类型(Person)
class Person
{
//属性–成员变量
string name;
string sex;
int age;
//行为–成员函数
void eat();
void say();
void sleep();
};
创建类的对象
Person zhansan;

类本身不占用内存空间,再定义对象后才分配空间
计算类对象空间大小—sizeof(zhansan) 、sizeof(Person)
当类中没有成员数据(非静态数据),那么这个类的对象大小为1字节

类的对象访问成员(访问公有成员)
对象访问成员用. 比如Person zhansan; zhansan.setInfo(…)
类的指针访问成员-> 比如 Person *lisi = new Person; lisi->setInfo(…);

类的成员没有设置权限默认是私有–对外隐藏
公有权限 public
保护权限 protected
私有权限 private

this指针----只能用在类的成员函数中,代表这个函数的调用者(对象)
zhansan.setInfo(“zhansan”,“man”,18);
void setInfo(string name, string sex, int age)
{
this->name = name;
this->sex = sex;
this->age = age;
}
这里的this就是zhansan的地址

练习:设计一个学生类(属性:姓名,年龄, 班级,学号–私有) 行为(学习,吃饭,睡觉-显示信息—修改信息–公有);定义一个Jack, Rose, Jim对象分别输出这个三个学生的信息

类内部声明成员函数 拨号vps
//类内声明
void setInfo(string name, int age, string classN, string number);
在类外实现成员函数
//在类外实现
void Student::setInfo(string name, int age, string classN, string number)
{
this->name = name;
this->age = age;
this->classN = classN;
this->number = number;
}

类的构造函数(方法)
构造函数—函数与类名相同, 函数没有返回值, 函数在创建对象的时候自动调用,如果没有自定义构造函数系统会默认生不带参数的构造函数(如果自定义了构造函数就不会自动生成)

析构函数----函数与类名相同在前面添加~, 函数没有返回值,没有参数, 在对象销毁的时候系统自动调用

QT 基础语法

标签:输出   对象销毁   自动调用   递归   --   设置   com   open   设备   

原文地址:https://www.cnblogs.com/smileyang/p/12168761.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!