-
+
virtual int work(); 虚函数 该staff 类里也可实现
virtual int work()=0;纯虚函数,只声明,不实现。
虚函数不能实例化对象。
纯虚函数的类只能被继承,不能被实例化
查看全部 -
对象分配到堆上,new 用来分配对象,delete 用来删除对象。new 会返回一个指针,在使用完毕后,要通过 delete 把这个指针指向的地址释放掉。
Staff * st1 = new Staff(); // 记得释放 delete st1;
栈上实例化:
Staff st1;
查看全部 -
函数指针funcp指向函数funcl;
int (*funcP)(int a)=funcl;
int 函数返回值类型
funcP 指针名
int a 函数输入值
funcl 指针指向的函数
int ret=(*funcP)(5);
通过指针调用函数,将返回值赋给ret
查看全部 -
#include <stdio.h> int main(int argc,char **argv) { int arr[] = {1, 2, 3, 4}; int * p = arr; return 0; }
*(p+2)
等价于
arr[2]
查看全部 -
普通变量用点,指针用箭头
查看全部 -
现在大部分的机器,都采用了小端字节序。但是在 IO 方面,则大部分使用大端字节序。例如,你要使用网络发送一个 int 类型的变量,要先把 int 转换成大端字节序,然后通过网络发送。
大端字节序又被称之为网络细节序。
查看全部 -
要通过基类(父类)释放子类的对象,必须将父类的析构函数设置为virtual.
查看全部 -
static int a
定义静态变量
查看全部 -
memcpy用来做内存拷贝,你可以拿它拷贝任何数据类型的对象,可以指定拷贝的数据长度;
例:
char a[100], b[50];
memcpy(b, a,sizeof(b)); //注意如用sizeof(a),会造成b的内存地址溢出。
strcpy就只能拷贝字符串了,它遇到'\0'就结束拷贝;例:
char a[100], b[50];
strcpy(a,b);
查看全部 -
将父类的析构函数声明为虚函数,作用是用父类的指针删除一个派生类对象时,派生类对象的析构函数会被调用。例如:
class Staff
{
public:
std::string name;
int age;
virtual ~Staff()
{
}
}
class Coder : public Staff
{
public:
std::string language;
virtual ~Coder()
{
}
};
int main(int argc,char **argv)
{
Staff * s = new Coder();
delete s;
return 0;
}此时如果析构函数不加 virtual,那么 delete 父类指针的时候,子类的析构就不会被调用,某些情况下会导致内存泄漏。
查看全部 -
比较特殊的是,数组名就是一个指针,不过数组名是一个常量指针,不能做累加或者累减操作。
我们可以通过指针来访问数组元素:
*(p + 2)
同样,这句话等价于:
p[2]
查看全部 -
浮点数结构复杂,运算速度慢
查看全部 -
浮点数的精度问题
查看全部 -
public用来指定公有成员。一个类的公有成员在任何地方都可以被访问
private用来指定私有成员。一个类的私有成员,无论是成员变量还是成员函数,都只能在该类的内部才能被访问。
protected用来指定保护成员。一般是允许在子类中访问。
查看全部 -
在 C++ 中,我们可以把一个类写到两个文件里面,一个是后缀为 .h 或者 .hpp 的头文件,一个是后缀为 .cpp 的实现文件。我们先在开发环境里新建一个类。输入类名是 Staff。
可以看到 VS 为我们创建类两个文件,Staff.h 和 Staff.cpp。Staff.h 文件为定义,Staff.cpp 为实现。
查看全部
举报