欢迎辞欢迎来到“笃志以砺,决起而飞”! 如果您是第一次来到本站,建议访问 本站导读以便更快地了解本站。 如果您喜欢本站, 欢迎订阅。 | (这篇文章主要涉及以下概念:指针、引用、内存地址、栈、堆、汇编、反汇编、寄存器、堆栈空间、赋值构造函数。) 不得不说我们学院的刚哥的 C++ 考试题就是不一样…考完试之后,有一道题被很多同学议论颇多,这就是写运行结果的第一题。这道题的题目大约如下。 ?View Code CPP1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include <iostream> using namespace std; class A{ int i; public: A(int x=0){ i=x; cout << "In Constructor" << [...] 由于在 C++ 中,const 是一个经常被用到的修饰符和关键字,有时候人们会想也不想就对其进行了滥用。刚才我看这样一条语句: void do_work (const int x); 既然 x 是传值的形参,所以对其的修改本来就不会影响原来的值,那么为什么还要加上 const 呢? 其实,加了 const 的主要后果是:无法修改被复制后的 x 的值。比如,本来你可以这样: x = 5; 虽然这条语句并不会影响调用方传递的实参,但是在函数内部,这个 x 是可以当一个临时变量来处理的。 如果加了 const ,这条语句将产生编译错误:表达式必须是可修改的左值。 由上可见,在这个地方,是否添加 const 并非没有意义,但是在多数情况下意义不大。加上这个 const 对健壮性的贡献并不大,但是大部分情况下,直接使用形参作为函数的内部变量也并不合适。或许,这也是设计者为 C++ 标准提供这个语法的目的之一吧。 在 C++ 中,我们可以利用下面的方法,将一个十进制数直接转换为二进制数并输出。 1、bitset<size_t len> 类型可以代表任意长度的二进制集合。 2、bitset<size_t len>() 构造函数可以将一个十进制数转换为其二进制形式。 3、stream << bitset<size_t len> 被重载,可以自动输出 bitset 的值。 ?View Code CPP1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 #include <iostream> #include <limits> #include <bitset> using namespace std; int main() { /* Use bitset [...] 最近在一道 Java 习题中,看到这样的一道题: What is the output when this statement executed: System.out.printf(-7 % 3); 正整数的取余运算大家都很熟悉,但是对于负数、实数的取余运算,确实给人很新鲜的感觉。于是我对此进行了一些探索。我发现,这里面还是颇有一点可以探索的东西的。 自然数的取模运算的定义是这样的(定义1): 如果a和d是两个自然数,d非零,可以证明存在两个唯一的整数 q 和 r,满足 a = qd + r 且0 ≤ r < d。其中,q 被称为商,r 被称为余数。 那么对于负数,是否可以沿用这样的定义呢?我们发现,假如我们按照正数求余的规则求 (-7) mod 3 的结果,就可以表示 -7 为 (-3)* 3 +2。其中,2是余数,-3是商。 那么,各种编程语言和计算器是否是按照这样理解的呢?下面是几种软件中对此的理解。 [...] Qt 是一个跨平台的、基于 LGPL 协议的界面类库,可以方便地实现 C++ 的可视化窗口编程,在很大程度上弥补了 C++ 语言界面编程的弱点。 由于要支持跨平台,一些基于平台的功能就不能直接写入类库,导致了使用 Qt 时一些功能需要变通的方法来实现。 比如:Qt 并不支持直接禁止用户调整窗口大小。变通的方法是将窗口的最小大小和最大大小设置为一样。 为了更方便,QWidget 类实现了 setFixedSize(int w, int h) 方法,该方法的实质就是将窗口的大小、最小大小、最大大小设置为相同的值。 唯一的缺憾是,通过这种方法实现的窗口固定大小的效果不是很完美,比如,在 Windows 操作系统下,在窗口边框处仍然提示可以拉动窗口以改变大小,但是拉动时却拉不动。 ?Download mainwindow.cpp1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #include [...] | |
近期评论