C++知识点汇总
第一章
★内联函数:程序调用这些成员函数时,并不是真正地执行函数调用过程(如保留返回地址
等处理),而是把函数代码嵌入程序的调入点。
★C++要求对一般的内置函数要用关键字 inline 声明,但对类内定义的成员函数,可以省略
inline。
★内联函数需要注意的是:
(1)在 C++中,除具有循环语句、Switch 语句的函数不能说明为内联函数外,其他函数都
可以说明为内联函数。
(2)内联函数必须在程序中第一次调用此函数的语句出现之前被编译器看见。
(3)如果成员函数不在类体内定义 ,而在类外定义,系统并不把它默认为内联函数,调用这
些成员函数的过程和调用一般函数的过程是相同的。
(4)使用小的内联函数在程序代码速度和大小可以取得折衷。
内联函数:
#include
inline int isnumber(char c)
{return (c>='0'&&c<='9')?1:0;}
void main()
{char c;
cout<<"enter a character:";
cin>>c;
if(isnumber(c))
cout<<"You entered a digit";
else
cout<<"You entered a not-digit";
}
例:
class Student
{ public:
void display() //也可以写成 inline void display()
{cout<<“num:”<C++知识点汇总
例如:
class Student
{ public:
inline void display(); //声明此成员函数为内联函数
private:
int num;
string name;
char sex;
};
inline void Student::display()
{cout<<“num:”<
>变量 1>>变量 2>>……>>变量 n;
★注意:
(1)不能用一个插入运算符”<<”插入多个输出项
例 1:cout<>a>>b>>c>>d;
cin>>a
>>b
>>c
>>d;
输入变量值时可以用空格分隔,也可以用回车分隔。
★动态分配和撤销内存的运算
(1)分配内存:new 运算符
指针名=new 结构名;
2
C++知识点汇总
(2)删除内容:delete 运算符
delete 指针名;
#include
using namespace std;
void main()
{float *p,min,sum=0;
p=new float[15];
if(!p){cout<<"内存分配错误!"
<>*(p+i);
min=*(p+0);
for(i=0;i<15;i++)
{ sum=sum+*(p+i);
if(min>*(p+i))
min=*(p+i);
}
cout<<"sum="<C++知识点汇总
#include
using namespace std;
void main()
{ int *p=new int[20];
int m,n;
m=n=0;
if (!p) {cout<<"内存分配错误!"<>*(p+i);
if(*(p+i)>0) m=m+1;
if(*(p+i)<0) n=n+1;
}
cout<<"正数 m 的个数为:"
<
void main()
{
int n,k=1;
cout<<"请输入 n 值:"<>n;
if(n<0)
cout<<"超出范围!"<C++知识点汇总
★编译指令功能主要有 4 中。
1、宏定义
※一般形式为:
#define 标识符 字符串;
#define 宏名(参数表) 字符串
例 1:#define PI 3.14159
例 2:#define S(a,b) a*b
※带参数的宏:
(1)编译程序中的实际参数代替宏中有关参数;
(2)当替换正文要书写多行,除最后一行之外,每行的行尾要加上一个反斜线。
#define MAX(a,b) ((a)>(b)>\
(a):(b))
(3)宏定义的替换正文可以为空。
#define REGISTER
REGISTER int i;
(4)与#define 一起使用的还有#和##两个运算符。
例 1:#的引用是在宏扩展之后,将其右边的操作数变成一个串。
#define string(a) #a
cout<
或#include “文件名”
例 1:#include<\user\prog.h>
注:如果在 C++程序中表示上述文件名,则必须使用双反斜杠。
例 2:char fname[ ]=“\\user\\prog.h”
3、条件编译
进行编译时对源程序中的内容只在条件满足的情况下才编译。
(1)#ifdef 标识符
(2) #ifndef 标识符
程序段 1 程序段 1
#else #else
程序段 2 程序段 2
#endif #endif
(3)#if 表达式
程序段 1
5
C++知识点汇总
#else
程序段 2
#endif
#include
#define RUN
void main()
{int x=1,y=2,z=3;
#ifdef RUN
cout<<"x="<C++知识点汇总
★说明类的方法:
(1) class 类名{
private:
私有数据和函数
public:
公有数据和函数
protected:
保护数据和函数
};
★2、类声明有关事项:
※访问权限:类的成员所具有的属性。
private 只能被类中成员函数引用,类外不能调用。
public 可以被本类中成员函数引用,也可以被类的作用域的其它函数引用。
protected 不能被类外访问,但可以被派生类的成员函数访问。
※如果在类的定义中既不指定 private,也不指定 public,则系统就默认为私有的。
※类中说明的任何成员不能使用 extern、auto 和 register
※不能在说明对象成员使用表达式进行初始化。
例:
class Location
{ private:
int X=25,Y;//错误的表达方式
};
★1、成员函数的性质
(1)它与一般的函数的区别只是:它是属于一个类的成员,出现在类体中。
(2)在使用类函数时,要注意调用它的权限。
(3)一般的做法是将需要被外调用的成员函数指定为 public,它们是类的对外接口。
2、在类外定义成员函数
(1)使用作用域运算符“::”
(2)用作用域运算符来说明所声明的函数属于哪个类的。
(3)类函数必须先在类体中原型声明,然后在类外定义。
(4)对类体内定义的函数,默认为内联函数(函数代码嵌入程序的调入点)。
※类外定义成员函数
class Student
{
public:
void display();
private:
int num;
string name;
char sex;
};
void Student::display()
7
C++知识点汇总
{ cout<<“num:”<hour;
(3)通过对象的引用变量访问对象中的成员;
例:
class Time
{public:
int hour;
int minute;
};
Time t1;
Time &t2=t1;
cout<