
C/C++
twlkyao
AlienTech for better life
展开
-
C++中protected的访问权限
关于C++中protected的访问权限的讨论已经是一个很陈旧的话题了,陈旧到大家都不愿意去讨论,觉得他见到到吃饭睡觉那么自然。我再次读《C++ Primer》的时候,其中关于protected 成员的描述是这样的:protected MembersThe protected access label can be thought of as a blend of private an转载 2013-04-22 14:31:52 · 875 阅读 · 0 评论 -
C语言空指针
空指针的简单描述:它 “与任何对象或函数的指针值都不相等”。也就是说, 取地址操作符 & 永远也不能得到空指针, 同样对 malloc() 的成功调用也不会返回空指针, 如果失败, malloc() 的确返回空指针, 这是空指针的典型用法:表示 “未分配”或者 “尚未指向任何地方”的指针。===================================================转载 2013-06-20 20:26:17 · 1388 阅读 · 0 评论 -
C语言 gets()和scanf()函数的区别
scanf( )函数和gets( )函数都可用于输入字符串,但在功能上有区别。若想从键盘上输入字符串"hi hello",则应该使用__gets__函数。gets可以接收空格;而scanf遇到空格、回车和Tab键都会认为输入结束,所有它不能接收空格。char string[15]; gets(string); /*遇到回车认为输入结束*/scanf("%s",string)转载 2013-06-23 23:48:38 · 831 阅读 · 0 评论 -
指针辨析:悬垂指针、哑指针、野指针、智能指针
悬垂指针: 1:提出的原因:请看下面的代码片段:[cpp] view plaincopyprint?int *p=NULL; void main() { int i=10;p=&i; cout"第一次:*p = " cout"第二次:*p = "转载 2013-06-25 09:54:18 · 1144 阅读 · 0 评论 -
C++继承方式详解
C++中子类继承父类后访问权限一直是困扰大多数人的问题,这里给出总结,希望有所帮助:所有的继承方式的访问性:继承方式基类成员特性 派生类成员特性派生类对象访问公有继承 public public 可直接访问 protected protected 不可直接访问 private 不可访问 不可直接访问私有继承原创 2013-07-30 22:57:16 · 1172 阅读 · 0 评论 -
C/C++ 排序之一(冒泡排序、选择排序、交换排序)
冒泡排序、选择排序、交换排序1、冒泡排序bubble_sort[cpp] view plaincopy#include void bubble_sort(int *begin, int *end) { int *i, *j; for(i = end; i >= begin; i --)转载 2013-08-22 10:02:02 · 1266 阅读 · 0 评论 -
C++常对象与常成员函数的关系
(1) 常对象用const修饰的对象叫对象常量,其格式如下:〈类名〉const 〈对象名〉 或者 const 〈类名〉〈对象名〉声明为常对象的同时必须被初始化,并从此不能改写对象的数据成员。例:分析下列错误的地方,说明理由;#includeclass Point{ int x, y;public:Point(int a, int b) { x=a; y=b;转载 2013-08-28 08:15:54 · 1166 阅读 · 0 评论 -
C/C++中的联合体union及CPU大小端判定
在C/C++程序的编写中,当多个基本数据类型或复合数据结构要占用同一片内存时,我们要使用联合体;当多种类型,多个对象,多个事物只取其一时(我们姑且通俗地称其为“n 选1”),我们也可以使用联合体来发挥其长处。首先看一段代码:View Codeunion类型是共享内存的,以size最大的结构作为自己的大小,这样的话,myun这个结构就包含u这个结构体,而大小也等于u这个结转载 2013-09-11 20:37:09 · 1565 阅读 · 0 评论 -
【C++基础之二】常量指针和指针常量
1.常量指针定义:具有只能够读取内存中数据,却不能够修改内存中数据的属性的指针,称为指向常量的指针,简称常量指针。声明:const int * p; int const * p;注:可以将一个常量的地址赋值给一个对应类型的常量指针,因为常量指针不能够通过指针修改内粗数据。只能防止通过指针引用修改内存中的数据,并不保护指针所指向的对象。2.指针常量转载 2013-09-30 19:27:11 · 1161 阅读 · 0 评论 -
C++继承:公有,私有,保护
公有继承(public)、私有继承(private)、保护继承(protected)是常用的三种继承方式。1. 公有继承(public)公有继承的特点是基类的公有成员和保护成员作为派生类的成员时,它们都保持原有的状态,而基类的私有成员仍然是私有的,不能被这个派生类的子类所访问。2. 私有继承(private)私有继承的特点是基类的公有成员和保护成员都作为派生类的私有转载 2013-11-06 09:34:55 · 1198 阅读 · 0 评论 -
C++中一个class类对象占用多少内字节
一个空的class在内存中多少字节?如果加入一个成员函数后是多大?这个成员函数存储在内存中什么部分?一个Class对象需要占用多大的内存空间。最权威的结论是:*非静态成员变量总合。*加上编译器为了CPU计算,作出的数据对齐处理。*加上为了支持虚函数,产生的额外负担。介绍完了理论知识后,再看看再找一个例子看看(注:一下所有结果都是在VC6.0 开发环境中得出的结论)一转载 2013-11-08 19:31:05 · 1834 阅读 · 0 评论 -
C++中友元(友元函数和友元类)的用法和功能
采用类的机制后实现了数据的隐藏与封装,类的数据成员一般定义为私有成员,成员函数一般定义为公有的,依此提供类与外界间的通信接口。但是,有时需要定义一些函数,这些函数不是类的一部分,但又需要频繁地访问类的数据成员,这时可以将这些函数定义为该函数的友元函数。除了友元函数外,还有友元类,两者统称为友元。友元的作用是提高了程序的运行效率(即减少了类型检查和安全性检查等都需要时间开销),但它破坏了类的封装性和转载 2013-11-12 15:21:55 · 1158 阅读 · 0 评论 -
虚函数和纯虚函数的区别
首先:强调一个概念定义一个函数为虚函数,不代表函数为不被实现的函数。定义他为虚函数是为了允许用基类的指针来调用子类的这个函数。定义一个函数为纯虚函数,才代表函数没有被实现。定义纯虚函数是为了实现一个接口,起到一个规范的作用,规范继承这个类的程序员必须实现这个函数。1、简介假设我们有下面的类层次:[cpp] view plaincopy转载 2013-12-04 00:05:39 · 1015 阅读 · 0 评论 -
hdu 1018
很久没A题。。。原来学过的都忘了……很久以前的一个题,试着再A一遍也难了,物是人非啊……复习一下吧! Big NumberTime Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6291转载 2013-12-17 09:57:25 · 1177 阅读 · 0 评论 -
用 const 限定类的成员函数
在审题C++题库的时候遇到一个const关键字的问题,这里整理一下,看到一篇博客,觉得不错,整理过来:————————————————————我是分割线————————————————————5. const 限定类的成员函数: class classname { public: int fun() const; ..... } 注意:采用此种c转载 2013-12-22 23:15:01 · 1018 阅读 · 0 评论 -
C++拷贝构造函数(深拷贝,浅拷贝)
对于普通类型的对象来说,它们之间的复制是很简单的,例如:int a=88;int b=a; 而类对象与普通对象不同,类对象内部结构一般较为复杂,存在各种成员变量。下面看一个类对象拷贝的简单例子。 #include iostream>using namespace std;class CExample {private: int a;pub转载 2013-12-25 08:57:41 · 986 阅读 · 0 评论 -
拷贝构造函数
AlienTech for better life!~原创 2013-12-22 00:26:08 · 1383 阅读 · 2 评论 -
C++中定义类的对象:用new和不用new有何区别?
举个简单的例子:[cpp] view plaincopyclass Point { private: int x; int y; public: void Set(int a,int b) { x=a; y=b; } void Print() { cout"("","")"}; void main() { Point p1; Point *p2=new Point()转载 2013-06-16 09:23:54 · 1128 阅读 · 0 评论 -
C++类四个默认函数---构造函数、析构函数、拷贝函数、赋值函数
默认构造函数指不带参数或者所有参数都有缺省值的构造函数!!!(1)构造函数、析构函数与赋值函数构造函数、析构函数与赋值函数是每个类最基本的函数。它们太普通以致让人容易麻痹大意,其实这些貌似简单的函数就象没有顶盖的下水道那样危险。每个类只有一个析构函数和一个赋值函数,但可以有多个构造函数(包含一个拷贝构造函数,其它的称为普通构造函数)。对于任意一个类A,如果不编写上述转载 2013-06-16 09:09:24 · 14858 阅读 · 1 评论 -
C++_运算符重载
什么是运算符的重载? 运算符与类结合,产生新的含义。 为什么要引入运算符重载? 作用:为了实现类的多态性(多态是指一个函数名有多种含义)怎么实现运算符的重载?方式:类的成员函数 或 友元函数(类外的普通函数)规则:不能重载的运算符有 . 和 .* 和 ?: 和 :: 和 sizeof友元函数和成员函数的使用场合:一般情况下,建议一元运转载 2013-04-22 16:06:51 · 683 阅读 · 0 评论 -
C,C++开源项目中的100个Bugs
俄罗斯OOO Program Verification Systems公司用自己的静态源码分析产品PVS-Studio对一些知名的C/C++开源项目,诸如Apache Http Server、Chromium、Clang、CMake、MySQL等的源码进行了分析,找出了100个典型的Bugs。个人觉得这份列表对C/C++ 程序员有一定参考意义。与其说事后用静态工具分析,倒不如在编码时就提高转载 2013-04-18 14:56:29 · 1193 阅读 · 0 评论 -
C++输入输出流
以下是课程书上的,我直接摘抄下来的:C++语言同C语言一样,也不具有内部输入输出能力,这样做的目的是为了最大限度地保证语言与平台的无关性。计算机语言的输入输出功能都是与操作系统相关的,如果C++为某种操作系统实现内部输入输出功能,那它也就被限制在这个操作系统上了,这是我们所不希望的。如果一个应用程序没有输入和输出,那它也就没有应用价值。在C++中,输入输出功能,是通过调用该操作系统的I/O转载 2013-04-21 08:29:33 · 1377 阅读 · 0 评论 -
C/C++中如何获取数组的长度?
C、C++中没有提供 直接获取数组长度的函数,对于存放字符串的字符数组提供了一个strlen函数获取长度,那么对于其他类型的数组如何获取他们的长度呢?其中一种方法是使 用sizeof(array) / sizeof(array[0]), 在C语言中习惯上在 使用时都把它定义成一个宏,比如#define GET_ARRAY_LEN(array,len) {len = (sizeof(array)转载 2013-04-21 09:25:23 · 1056 阅读 · 0 评论 -
C++常数据成员精讲—const关键字(引)
C++常数据成员精讲—const关键字更多内容:http://www.cctwl.com/内容提要:用const修饰的定义对象称为常对象;用const修饰的声明成员函数称为常成员函数;用const修饰的声明数据成员称为常数据成员。变量或对象被 const修饰后其值不能被更新。因此被const修饰的变量或对象必须要进行初始化。用const修饰的声明数据转载 2013-04-21 09:23:49 · 1009 阅读 · 0 评论 -
关于C++中enum的探讨
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一一例举出来。举个例子来说明一吧,为了让大家更明白一点,比如一个铅笔盒中有一支笔,但在没有打开之前你并不知道它是什么笔,可能是铅笔也可能是钢笔,这里有两种可能,那么你就可以定义一个枚举类型来表示它!enum box{pencil,pen};//这里你就转载 2013-05-05 13:59:47 · 735 阅读 · 0 评论 -
C++输入cin详解
输入原理:程序的输入都建有一个缓冲区,即输入缓冲区。一次输入过程是这样的,当一次键盘输入结束时会将输入的数据存入输入缓冲区,而cin函数直接从输入缓冲区中取数据。正因为cin函数是直接从缓冲区取数据的,所以有时候当缓冲区中有残留数据时,cin函数会直接取得这些残留数据而不会请求键盘输入#1:#include using namespace std;int main(转载 2013-05-20 17:01:26 · 891 阅读 · 0 评论 -
C++函数指针定义及调用
今天在一问一答审核题目的时候发现一个题目的题干是错的,主要意思就是定义一个函数指针,现在将修改后的结果放上来,给出定义函数指针的方法:/**作者: 齐士垚日期: 2013.5.8功能: 定义函数指针,并且调用 */#includeusing namespace std; int max(int a,int b) //返回二者之中较大者 { return a > b原创 2013-05-08 10:50:06 · 1476 阅读 · 0 评论 -
C++ 数组与字符串长度sizeof()、strlen()、string的length()和size()
目录一、数组或字符串的长度1、sizeof()---求所占的字节数(1)、对于整型字符型数组(2)、对于整型或字符型指针2、strlen()---字符数组或字符串所占的字节数(1)、针对字符数组(2)、针对字符指针3、sizeof()与strlen()区别4、c++中的字符串string的长度 一、转载 2013-05-25 19:43:21 · 15682 阅读 · 0 评论 -
浅谈C++多态性
C++编程语言是一款应用广泛,支持多种程序设计的计算机编程语言。我们今天就会为大家详细介绍其中C++多态性的一些基本知识,以方便大家在学习过程中对此能够有一个充分的掌握。 多态性可以简单地概括为“一个接口,多种方法”,程序在运行时才决定调用的函数,它是面向对象编程领域的核心概念。多态(polymorphisn),字面意思多种形状。 C++多态性是通过虚函数来实现的,虚函数允许子类重新定转载 2013-05-28 10:53:22 · 824 阅读 · 0 评论 -
C++ 默认构造函数
C++ 默认构造函数一直认为若程序员没有自己定义无参数的构造函数,那么编译器会自动生成默认构造函数,来进行对成员函数的初始化,但这种认为是有误的,不全面的.默认的构造函数分为有用的和无用的,所谓无用的默认构造函数就是一个空函数、什么操作也不做,而有用的默认构造函数是可以初始化成员的函数。对构造函数的需求也是分为两类:一类是编辑器需求,一类是程序的需求。程序的需求转载 2013-05-28 10:59:26 · 968 阅读 · 0 评论 -
C++构造函数语义——默认构造函数
0、前言 《The C++ ARM》告诉我们:“默认构造函数会在需要的时候自动生成(被编译器)。”然后“在需要的时候”是一个很抽象的概念,本文主要描述的问题也正是这些需要的情况。 我们看看下面的代码片段:[cpp] view plaincopyprint?class Foo { public:转载 2013-05-28 11:00:44 · 868 阅读 · 0 评论 -
C++之运算符重载(1)
在前一节中曾提到过,C++中运行时的多态性主要是通过虚函数来实现的,而编译时的多态性是由函数重载和运算符重载来实现的。这一系列我将主要讲解C++中有关运算符重载方面的内容。在每一个系列讲解之前,都会有它的一些基础知识需要我们去理解。而运算符重载的基础就是运算符重载函数。所以今天主要讲的是运算符重载函数。 1.运算符重载是对已有的运算符赋予多重含义,使同一个运算符作用域不同类型的数据导致不转载 2013-05-28 11:02:28 · 847 阅读 · 0 评论 -
C++构造函数详解
c++构造函数的知识在各种c++教材上已有介绍,不过初学者往往不太注意观察和总结其中各种构造函数的特点和用法,故在此我根据自己的c++编程经验总结了一下c++中各种构造函数的特点,并附上例子,希望对初学者有所帮助。 c++类的构造函数详解 一、 构造函数是干什转载 2013-05-27 23:32:54 · 730 阅读 · 0 评论 -
C++默认构造函数——深入理解
错误认识1:若程序员没有自己定义无参数的构造函数,那么编译器会自动生成默认构造函数,来进行对成员函数的初始化。错误认识2:编译器合成出来的default constructor会明确设定'“class内每一个data member的默认值”。但这两种种认识是有误的,不全面的。正确认识:默认的构造函数分为有用的和无用的,所谓无用的默认构造函数就是一个空函数、什么操作也不做转载 2013-05-27 23:40:42 · 1167 阅读 · 0 评论 -
数据结构程设计-------哈弗曼编码
#include "iostream"using namespace std;#define MAX 21typedef struct{ char data; int weight; int parent; int left; int right;}huffnode;typedef struct{ char cd[MAX]; int start;}huffcode;转载 2013-05-28 23:52:28 · 859 阅读 · 0 评论 -
寻找一个整数二进制表示中1的个数
AlienTech for better life!~原创 2014-04-14 20:14:47 · 2462 阅读 · 0 评论