随笔分类 - C++
摘要:#include "stdafx.h"#includeusing namespace std;#includeenum Status{OK,ERROR};typedef int ElemType;typedef struct Lnode { ElemType num; ///结点元素类型为int Lnode *next; ///指向下一结点的指针}LNode,*LinkList;///创建n个人序号的链表Status CreatLink(LinkList &L,int n){ LinkList p; LinkList head; L = (Li...
阅读全文
摘要:多重继承存在二义性,为了消除二义性在访问相同名称的属性时需要加上类名,加以区分。虽然这样可以解决二义性,但是相同的属性出现在多个基类中,为了解决数据冗余,c++引入了虚基类。 虚基类定义:class 派生类名: virtual 继承方式 基类名 初始化/*如果在虚基类中定义了带参数的构造函数,而且没有定义默认构造函数,则在其所有派生类(包括直接派生或间接派生的派生类)中,通过构造函数的初始化表对虚基类进行初始化。例如*/class A//定义基类A {A(int i){ } //基类构造函数,有一个参数…};class B :virtual ...
阅读全文
摘要:#include "stdafx.h"#include #include using namespace std;class Teacher//声明类Teacher(教师) {public: //公用部分 Teacher(string nam,int a, string t) //构造函数 {name=nam; age=a; title=t;} void display( ) //输出教师有关数据 {cout<<"name:"<<n...
阅读全文
摘要:1、派生类的构造函数: #include #includeusing namespace std;class Student//声明基类Student { public: Student(int n,string nam,char s) //基类构造函数 { num=n; name=nam; sex=s; } ~Student( ){ } //基类析构函数...
阅读全文
摘要:有关构造函数的使用,有以下说明: (1) 在类对象进入其作用域时调用构造函数。 (2) 构造函数没有返回值,因此也不需要在定义构造函数时声明类型,这是它和一般函数的一个重要的不同之点。 (3) 构造函数不需用户调用,也不能被用户调用。 (4) 在构造函数的函数体中不仅可以对数据成员赋初值,而且可以包含其他语句。但是一般不提倡在构造函数中加入与初始化无关的内容,以保持程序的清晰。 (5) 如果用户自己没有定义构造函数,则C++系统会自动生成一个构造函数,只是这个构造函数的函数体是空的,也没有参数,不执行初始化操作。 (6)构造函数可以定义到类的外部。1、计算长方形的体积: ...
阅读全文
摘要:struct Student //声明一个结构体类型Student{ int num; //包括一个整型变量num char name[20]; //包括一个字符数组name,可以容纳20个字符 char sex; //包括一个字符变量sex int age; //包括一个整型变量age float score; //包括一个单精度型变量 char addr[30]; //包括一个字符数组addr,...
阅读全文
摘要:http://bbs.9ria.com/blog-164422-18039.html初学者在学习C语言时,通常会遇到两个瓶颈,一个是“递归”,一个是“指针”。大学老师在讲述这两个知识点时通常都是照本宣科,而没有站在一个初学者的角 度来审视问题,更没有剖析其内部机理。本人在此将发表一系列技术文章,希望能将C语言中“指针”这一概念讲述清楚,希望初学者能从中收益。在此笔者也极力 推荐Kenneth A.Reek写的《Pointers On C》这本书。1.内存和地址初学者面对内存一词时总是有一种既陌生又熟悉的感觉。首先,在日常生活中大家总是会讨论某某设备内存有多大,是不是该加一个内存条等等。但是,内
阅读全文
摘要:如果想通过函数调用得到n个要改变的值,可以采取下面的步骤: ①在主调函数中设n个变量,用n个指针变量指向它们; ②编写被调用函数,其形参为n个指针变量,这些形参指针变量应当与主调函数中的n个指针变量具有相同的基类型; ③在主调函数中将n个指针变量作实参,将它们的值(是地址值)传给所调用函数的n个形参指针变量,这样,形参指针变量也指向这n个变量; ④通过形参指针变量的指向,改变该n个变量的值; ⑤在主调函数中就可以使用这些改变了值的变量。例如:#include #include using namespace std;void swap1(int *a,int *b);void swa...
阅读全文
摘要:1、i_pointer是一个指针变量,而*i_pointer表示i_pointer所指向的变量即i。-------------下面两个语句作用相同: ① i=3;② *i_pointer=3; 2、定义指针变量:基类型 *指针变量名;下面都是合法的定义: float *pointer_3; // pointer_3是指向单精度型数据的指针变量 char *pointer_4; // pointer_4是指向字符型数据的指针变量请注意: 指针变量名是pointer_3和pointer_4,而不是*pointer_3和*po...
阅读全文
摘要:#include using namespace std;template //模板声明,其中T为类型参数T max(T a,T b,T c) //定义一个通用函数,用T作虚拟的类型名{ if(b>a) a=b; if(c>a) a=c; return a;}int main( ){int i1=185,i2=-76,i3=567,i; double d1=56.87,d2=90.23,d3=-3214.78,d; long g1=67854,g2=-912456,g3=673456,g;i=max(i1,i2,i3); //调用模板...
阅读全文
摘要:特征: 采用关键字是inline,不能包括复杂的控制语句,函数体不宜大于5行并且在函数中频繁调用时才考虑使用内置函数。 优点:提高运行效率。 因为它在编译阶段将函数体插入到主函数中取得,这样就避免了一次函数调用而节省时间。 缺点:主函数体会变长。所以函数内容比较多的函数不建议使用内置函数。#include using namespace std;inline int max(int,int, int); //声明函数,注意左端有inlineint main( ){int i=10,j=20,k=30,m; m=max(i,j,k); couta) a=b; ...
阅读全文
摘要:C/C++学习笔记1 - 深入了解scanf()/getchar()和gets()等函数---------------------------------------------------- | 问题描述一:(分析scanf()和getchar()读取字符) | ---------------------------------------------------- scanf(), getchar()等都是标准输入函数,一般人都会觉得这几个函数非常简单,没什么特殊的。但是有时候却就是因为使用这些函数除了问题,却找不出其中的原因。下面先看一个很简单的程序: 程序1: #inc...
阅读全文
摘要:http://www.imeee.cn/News/GouWu/20090801/221298.htmlcin.get()与getchar()函数有什么区别?详细点..C++中几个输入函数的用法和区别(cin、cin.get()、cin.getline()、getline()、gets()、getchar())) 1、cin1、cin.get()2、cin.getline()3、getline()4、gets()5、getchar()1、cin>>用法1:最基本,也是最常用的用法,输入一个数字:#include using namespace std;main (){int a,b;
阅读全文

浙公网安备 33010602011771号