QT 基础语法

24 篇文章 1 订阅
1 篇文章 0 订阅

函数:定义

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

函数重载(函数名相同,函数参数列表不同) —编译器检查函数的时候同时检查函数名和参数列表
—强类型(指针,引用赋值类型必须一致) 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);
函数调用的可以

  1. int fd = open(); --没有带参数,那么就用默认参数
  2. 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对象分别输出这个三个学生的信息

类内部声明成员函数
//类内声明
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;
}

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

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

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值