![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
argpunk
以梦为马
展开
-
从编译器角度理解虚函数和继承
在c++中,继承的概念可以理解为c中得嵌套结构体,对于各种函数,类中的成员函数,类中的友元函数,各种继承的虚拟函数,只要从编译器的角度去理解就会变得简单。例如下例:class D{ public: int func_D(); int v_func_DD();};class D1 : public D{ public: int func_D原创 2012-01-31 15:05:04 · 865 阅读 · 0 评论 -
数组引用的思考
@当给一个函数传递数组相关的参数时,除了可以传递数组的起始地址,还可以传递整个数组的引用。 如: void function(int (&arr)[10]);此时,将函数的形参声明为一个数组的引用,这个数组的大小是10个int元素。对于该函数的使用方法为: int main(){ int i = 0, j[2] = {1,2}; int k[10原创 2012-02-01 21:05:37 · 704 阅读 · 0 评论 -
理解对象的构造时发生的情况
当一个对象被创建时,会发生什么情况呢?例如:templateclass boy{ public: boy(const string &new_name, T *ptr){ name = newname; adress = ptr; } .....原创 2012-02-05 18:35:26 · 609 阅读 · 0 评论 -
operator=相关思考
一. operator=返回值及形参的讲究:1.string& string::operator=(const string& rhs){ return *this;}在这种情况下 ,赋值操作符的重载可以面对的几种情况:①. string s1; s1 = "Hello"; 此时编译器会做如下处理: const string __te原创 2012-02-07 11:45:21 · 789 阅读 · 0 评论 -
一个关于extern"C"下函数指针行为的测试用例
本例测试在VS2008下extern "C" 对函数名以及函数指针的影响.//test.h#ifndef TEST_H#define TEST_H#include #define BUFSIZE 1024 #ifdef __cplusplusextern "C"{#endifextern "C" void(*pf2)(void);void pf3(原创 2012-02-12 15:05:15 · 1626 阅读 · 0 评论 -
malloc与free
关于malloc与free1. 这两个函数是库函数,不是操作系统中真正对进程虚拟地址的释放(例如Linux的brk系统调用才是真正的申请和释放)2. free并不代表操作系统对于进程虚拟空间真正的释放,因此在释放后该块地址对于进程来说还是可以访问的(并不会引起非法地址访问的错误,在调用free后,库可能会将这段内存标记为一个很大得值,例如在windows下的0xfeee原创 2012-04-13 15:57:39 · 791 阅读 · 0 评论