您当前的位置: 首页 >  nio

txwtech

暂无认证

  • 2浏览

    0关注

    813博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

cc43a_demo_c++RTTI-union-嵌套类-类成员的指针-位域-volatile

txwtech 发布时间:2020-01-23 11:47:15 ,浏览量:2

//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             
关注
打赏
1665060526
查看更多评论
0.0412s