随笔分类 - 语言
摘要:示例代码对以下两种情况进行了说明: 1. 继承时改变虚函数的权限; 2. 私有继承;
阅读全文
摘要:在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容chara='A';//globalvariablevoidmsg(){printf("Hello\n");}下面是main.c的内容intmain(void){externchara;//externvariablemustbedeclaredb
阅读全文
摘要:有虚函数的类,其对象占用的内存空间的前四个字节存放指向虚表的指针。非虚拟继承时,无论派生类是否定义新的虚函数,基类和派生类总是共享一个虚函数表,不需要另加指向虚函数的指针。2. 虚拟继承时,若是派生类只是继承或重写基类中虚函数,则基类和派生类是共享一个虚函数表;若派生类新定义了虚函数,则需要新加一个虚指针指向新的虚函数表。 1. 用virtual关键字申明的函数叫做虚函数,虚函数肯定是类的成员函数。2.存在虚函数的类都有一个一维的虚函数表叫做虚表。类的对象有一个指向虚表开始的虚指针。虚表是和类对应的,虚表指针是和对象对应的。3.多态性是一个接口多种实现,是面向对象的核心。分为类的多态性和函数的
阅读全文
摘要:用Python的MySQLdb插入UTF-8编码的内容时经常会出问题,主要是Mysql数据库编码和python程序文档编码两个方面。本文旨在提供一个例子来解决Python插入UTF8中文数据的问题使用环境:Python 2.5 for WindowsMySQLdb 1.2.2 for Python 2.5MySQL 4.1.22源代码如下:#!/usr/bin/env python#coding=utf-8import MySQLdb#DB parameterstrHost = '192.168.6.184'strDB = 'test'strUser =
阅读全文
摘要:函数模板与类模板有什么区别?答:函数模板的实例化是由编译程序在处理函数调用时自动完成的,而类模板的实例化必须由程序员在程序中显式地指定。即函数模板允许隐式调用和显式调用而类模板只能显示调用这期间有涉及到函数模板与模板函数,类模板与模板类的概念(类似于类与类对象的区别)请看下面例子注意:模板类的函数声明和实现必须都在头文件中完成,不能像普通类那样声明在.h文件中实现在.cpp文件中,原因可以看链接http://hi.baidu.com/cn_rigel/blog/item/6cf6fc083723e2286a60fb53.html#include"stdafx.h"#incl
阅读全文
摘要:malloc与new(2009-12-07 20:01:31)转载▼标签:杂谈 原型:extern void *malloc(unsigned int num_bytes);首先,介绍一下malloc的原型: 头文件:#include 或 #include (注意:alloc.h 与 malloc.h 的内容是完全一致的。)功能:分配长度为num_bytes字节的内存块说明:如果分配成功则返回指向被分配内存的指针,否则返回空指针NULL。当内存不再使用时,应使用free()函数将内存块释放。相同点:malloc和new都是分配到堆上,栈上分自动变量(就是局部变量)区别:1、new 是c+...
阅读全文
摘要:成员函数被重载的特征:(1)相同的范围(在同一个类中);(2)函数名字相同;(3)参数不同;(4)virtual 关键字可有可无。隐藏与重载的区别:(1)不同的范围(2)函数名相同(3)参数不同(4)virtual 关键字可有可无覆盖是指派生类函数覆盖基类函数,特征是:(1)不同的范围(分别位于派生类与基类);(2)函数名字相同;(3)参数相同;(4)基类函数必须有virtual 关键字。隐藏与覆盖的区别:(1)不同的范围(2)函数名相同(3)参数相同(4)基类没有virtual关键字 1 #include 2 #include 3 using namespace std; 4 5 cl...
阅读全文
摘要:一.在c中分为这几个存储区1.栈-由编译器自动分配释放2.堆-一般由程序员分配释放,若程序员不释放,程序结束时可能由OS回收3.全局区(静态区),全局变量和静态变量的存储是放在一块的,初始化的全局变量和静态变量在一块区域,未初始化的全局变量和未初始化的静态变量在相邻的另一块区域。-程序结束释放4.另外还有一个专门放常量的地方。-程序结束释放在函数体中定义的变量通常是在栈上,用malloc,calloc,realloc等分配内存的函数分配得到的就是在堆上。在所有函数体外定义的是全局量,加了static修饰符后不管在哪里都存放在全局区(静态区),在所有函数体外定义的static变量表示在该文件中有
阅读全文
摘要:涉及到c++中求类大小时需要特别注意一下几点1.为类的非静态成员数据的类型大小之和.2.有编译器额外加入的成员变量的大小,用来支持语言的某些特性(如:指向虚函数的指针、虚继承、多重继承).3.为了优化存取效率,进行的边缘调整.4. 与类中的构造函数,析构函数以及其他的成员函数无关.5. 私有继承,会去继承之前的私有成员变量么? 会...在内存中仍然分配相应的空间,只是在子类中是不可见的!6. 在做多层次的继承类大小时某个子类的类大小总是等于父类的大小加上子类中数据成员和是否有虚函数,是否是虚继承等因素来决定。空类大小为1 首先:我们要知道什么是类的实例化,所谓类的实例化就是在内存中分配一块地.
阅读全文
摘要:PythonaddsanextensionsyntaxtoPerl’sextensionsyntax.IfthefirstcharacterafterthequestionmarkisaP,youknowthatit’sanextensionthat’sspecifictoPython.Currentlytherearetwosuchextensions:(?P<name>...)definesanamedgroup,and(?P=name)isabackreferencetoanamedgroup.>>>p=re.compile(r'(?P<wor
阅读全文
浙公网安备 33010602011771号