探寻C++类——重载赋值操作符(operator=)

目录 C/C++

已经忙碌一个多月,现在才想起来要更博了。今天在写课堂实验时,一题为:

编写一个程序:输入几个学生的姓名、英语和计算机成绩,然后按照总分从高到低排序。要求定义一个Student类,并用友元函数实现排序。

开始看到这题觉得还是挺简单的,其中排序是常见的冒泡排序。众所周知,冒泡排序中,需要建立一个缓存变量来交换变量。而在此例中,需要交换的是类对象,那么解决方法则有两种: 继续阅读 “探寻C++类——重载赋值操作符(operator=)”

探寻C++类——隐式类类型转换

目录 C/C++

新春之际不忘继续狂奔,近期在看有关C++类及面向对象方面的知识,从定义到构造函数的探究,其中遇到一个点是对于C++类中,隐式类类型的转换。查阅《C++ Primer 4th Edition》有如下一个注解。

A constructor that can be called with a single argument defines an implicit conversion from the parameter type to the class type. ——《C++ Primer 4th Edition
可以用单个实参来调用的构造函数定义了从形参类型到该类类型的一个隐式转换。

单从定义读出隐式转换是针对单形参的类构造函数,为了深入了解,根据C++ Primer的例子修改了一下。 继续阅读 “探寻C++类——隐式类类型转换”

由链表问题引发对堆、栈的讨论

目录 C/C++

刚听到链表其实还是有些惧怕的,我记得第一次见链表是在高中的时候,那时见到一个简单的Demo还读不懂,思路更是模糊。直到在大学课本上才真正对链表有了深入的了解,但由于大学老师一笔带过的授课,我并没有刻意关注链表这东西。

前几天,Sheldon Zhong就一些关于链表的问题与我讨论,几经引用和修改最终整出个马马虎虎的Demo。

继续阅读 “由链表问题引发对堆、栈的讨论”

Ubuntu下发布Qt程序

目录 C/C++, Linux

概述

无论是在Windows下还是在Linux下,可执行程序的运行都需要依赖相关的运行库,比如Windows下运行VS编译的C++程序需要安装对应的C++运行时库。这次本文来讨论讨论Linux下(主要针对Ubuntu/Debian)如何发布Qt程序,如何查看编译好的Qt程序需要哪些依赖的运行库,以及如何让Qt程序在没有安装Qt开发工具的机器上跑起来呢?

继续阅读 “Ubuntu下发布Qt程序”