//43C++Primer_特殊工具与技术txwtech做特殊软件会用上 /* allocator类--是一个类模板,内存分配,指定大小的内存,没有构造对象。 RTTI--运行时对象类型识别。用在不能使用虚函数时 类成员的指针 嵌套类 union--联合 局部类--一个类在函数里面,也只能函数的局部使用 位域 volatile---易失的,挥发性的(volatile int y;//告诉c++,不要对y进行优化,不要改变在内存中的位置) extern "c",c与C++混在一起,c++调用c语言的函数,就需要extern "c" 如下: extern "c" void show(char *); */
//extern "C" void show(char *); //extern "c",c与C++混在一起,c++调用c语言的函数,就需要extern "c" extern "C" void show(const char *);//添加一个const就可以了 //严重性 代码 说明 项目 文件 行 禁止显示状态 //错误(活动) E0167 "const char *" 类型的实参与 "char *" 类型的形参不兼容 cc43a_demo C : \Users\TT2018\Documents\Visual Studio 2017\Projects\cc43a_demo\cc43a_demo\cc43a_demo.cpp 78
//43C++Primer_特殊工具与技术txwtech做特殊软件会用上
/*
allocator类--是一个类模板,内存分配,指定大小的内存,没有构造对象。
RTTI--运行时对象类型识别。用在不能使用虚函数时
类成员的指针
嵌套类
union--联合
局部类--一个类在函数里面,也只能函数的局部使用
位域
volatile---易失的,挥发性的(volatile int y;//告诉c++,不要对y进行优化,不要改变在内存中的位置)
extern "c",c与C++混在一起,c++调用c语言的函数,就需要extern "c"
如下:
extern "c" void show(char *);
*/
#include
using namespace std;
class Item_base
{
public:
virtual double net_price(size_t n) const//虚函数
{
class Cat //局部类
{
};
Cat cat;//局部类,也只能这里局部使用
return n * price;
}
//嵌套类
class Dog
{
};
public:
std::string isbn;
protected:
double price;
};
//派生类
class Bulk_item :public Item_base
{
public:
double net_price(std::size_t cnt) const
{
if (cnt > min_qty)
return cnt * (1 - discount)*price;
else
return cnt * price;
}
private:
std::size_t min_qty;
double discount;
};
union TokenValue //就是一个类
{
//三个数据是重叠打包在一起的,以数据里面最大的字节作用存储.三个实际是同一个
char cval;
int ival;
double dval; //dobule 8个字节,第一个给cval,4个字节给ival
};
//位域,用无符号整形来做
typedef unsigned int Bit; //
class File //位域类
{
public:
Bit mode : 2;//占2位
Bit modified : 1; //占1位
Bit prot_owner : 3;
Bit prot_group : 3;
Bit prot_world : 3;
//。。还可以写,共32位
};
enum { READ = 01,WRITE=02 };
//extern "C" void show(char *);
//extern "c",c与C++混在一起,c++调用c语言的函数,就需要extern "c"
extern "C" void show(const char *);//添加一个const就可以了
//严重性 代码 说明 项目 文件 行 禁止显示状态
//错误(活动) E0167 "const char *" 类型的实参与 "char *" 类型的形参不兼容 cc43a_demo C : \Users\TT2018\Documents\Visual Studio 2017\Projects\cc43a_demo\cc43a_demo\cc43a_demo.cpp 78
int main()
{
show("hello extern \"C\"\n");
File myFile;
myFile.mode = WRITE;//位域使用方法
myFile.modified = 1; //表示文件被修改了
TokenValue myToken = { 'a' };//第一个给cval,a就是 97。
cout
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?