C++ 运算符优先级列表
Precedence Operator Description Example Associativity 1 () [] - . :: ++ -- Grouping operator Array access Member access from a pointer Member access from an object Scoping operator Post-increment Post-decrement (a + b) / 4; array[4] = 2; ptr-age = 34; obj...
C++标准编程:虚函数与内联
我们曾经在讨论C++的时候,经常会问到:“虚函数能被声明为内联吗?”现在,我们几乎听不到这个问题了。现在听到的是:“你不应该使print成为内联的。声明一个虚函数为内联是错误的...
线性表--顺序储存结构
我意识到数据结构的重要性了,决定把把各种类型写一遍,熟练一下,我觉得对这些应该达到了如指掌的地步,才算可以... 注意:我是小菜菜,除了小菜菜菜之外大家都可以笑过了啊,当然有空希望大虾能多多指点我这小菜菜....呵呵,谁让我是小菜菜呢??加油......
面向过程与面向对象的区别
“面向过程”是一种以事件为中心的编程思想。 就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。 “面向对象”(Object Oriented,简称OO)是一种以事物为中心的编程思想。 面向对象的程序设计(Object-Oriented Programming,简记为OOP) 比如以公共汽车而言。 “面向过程”就是汽车启动是一个事件,汽车到站是另一个事件。在编程序的时候我们关心的是某一个事件。而不是汽车本身。我们分别对启动和到站编写程序。类似的还有修理等...
利用循环打印一些形状(星号组成的图形)
/* #includeiostream.h #includeconio.h void main() { short i=1,j; for(;i=5;i++) { cout.width(6-i); for(j=1;j=(i*2-1);j++) cout'*'; coutendl; } coutendl; for(i=1;i=5;i++) { cout.width(i); for(j=1;j=((6-i)*2-1);j++) cout'*'; coutendl; } for(i=1;i=5;i++) { f...
C++虚函数表深入剖析
C++中的虚函数的作用主要是实现了多态的机制。关于多态,简而言之就是用父类型别的指针指向其子类的实例,然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”,这是一种泛型技术。所谓泛型技术,说白了就是试图使用不变的代码来实现可变的算法。比如:模板技术,RTTI技术,虚函数技术,要么是试图做到在编译时决议,要么试图做到运行时决议。 关于虚函数的使用方法,我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中,我只想从虚函数的实现机制上面为大家 一个清晰的剖析。 当然...
C++指针的本质
1.定义指针 int * p; 与访问指针指向的变量 * p;这里面的 * ,是两个不同的符号,要区别对待,不要把他看成一样的东西。第一个*表示,要定义变量p是个存放地址的变量。第二个*表示,要寻址了,要找p里存放的地址指向的变量了。 2.定义int *p;有三个概念: 1. p是一个地址变量,用来存放地址。 2. 需要几次寻址才能找到最终的那个变量。 3. 最终的那个变量是什么类型的。 这里第一个概念最重要,看到一个定义要首先想到这一点。其他两个基本上是编译器检查时需要的信息,在类型转换,赋值时稍微注...
std::vector 实例化不需要类定义
朋友问一个问题,如下代码,是不是可以通过编译,我看了下,觉得很有意思,故记录下: Point3D.h #pragma once class CPoint3D { public: CPoint3D(void); public: ~CPoint3D(void); }; Line3D.h #pragma once #include vector class CPoint3D; class CLine3D { public: CLine3D(void); public: ~CLine3D(void); priv...
C++中const用法浅析
看到const 关键字,很多程序员想到的可能是const 常量,这可有点象踩到陷井上还不知道自己危险了。读读以下文字会使你对c++中的const有一个全面的认识。 const 是C++中常用的类型修饰符,有某些微妙的应用场合,如果没有搞清本源,则错误在所难免。本篇中将对const进行辨析。溯其本源,究其实质,希望能对大家理解const有所帮助,根据思维的承接关系,分为如下几个部分进行阐述。 C++中为什么会引入const C++的提出者当初是基于什么样的目的引入(或者说保留)const关键字呢?,这是一...
再谈Winsock网络编程入门
虽然自己接触网络编程已经很多年,但初学者还是需要入门的,这里谈谈我的在编写Windows网络应用程序的时候,最常用的便是Winsock接口,注意它不是网络协议,你可以理解它为网络应用API。 Winsock简介 Windows下网络编程的规范-Windows Sockets是Windows下得到广泛应用的、开放的、支持多种协议的网络编程接口。从1991年的1.0版到1995年的2.0.8版,经过不断完善并在Intel、Microsoft、Sun、SGI、Informix、Novell等公司的全力支持下,...
《深度探索C++对象模型》读书笔记 最后一记
第6章主要讲述了执行期语意学,主要内容是关于数组的在构建和析构是如何进行的。 第7章主要讲述了有关Template的相关内容。 这两章内容散见于《Effective C++》、《More Effective C++》、《C++Primer》《C++Templates中文版》等书籍,如果感兴趣请阅读对应的书籍。 本读书笔记主要想谈一下对语意的理解。 本人认为C++程序设计可以简单分为三个层次:语法层、语言语意层(就像《深度探索C++对象模型》所讲的语意)、程序语意层。 语法层是很容易理解的,也很容易学习的...
《深度探索C++对象模型》读书笔记(7)
template class...