Perfect World

本文深入探讨了程序设计的关键概念,包括类与对象、字节序处理、虚拟函数调用和const用法等核心主题。文章详细解释了类的实例化、指针操作、字节序转换以及不同函数调用的输出结果,旨在帮助读者理解C++中的底层工作原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、下面程序的正确输出结果为()
class test
{
public:
	void print()
	{
		cout<<"test"<<endl;
	}
};

int main(void)
{
	test *t = new test();
	t->print();
	t = NULL;
	t->print();
	return 0;
}

A、编译不通过           B、运行时必然出错退出          C、运行时可能出错退出
D、test                    E、test  test                           F、test  随机信息  
print是一个类级别的东西,也就是说它和类的实例(或者类的对象)没有任何关系,这也就是说“并未使用this指针”,在这种情况下,print仅与test的类型有关,而不管t是什么东西,只要是类类型的指针就可以调用这个函数。
对象级别的东西,比如类中的某个非静态成员变量,这种东西和类的实例有关,因此它使用this指针。 http://topic.csdn.net/u/20120428/22/06ecf02b-45a3-41e5-8eee-2e0be73a31db.html

2、在小端字节序的机器上执行下列代码的输出为多少?

union UData
{
	unsigned char btVals[4];
	unsigned int uiVal;
};

UData d;
int main(void)
{
	d.uiVal = 0x01020408;
	unsigned int btSum = (d.btVals[0]<<5)+(d.btVals[1]<<3)+(d.btVals[2]<<1)+(d.btVals[3]<<0);
	cout<<btSum<<endl;
	return 0;
}

3、下列代码的输出为()

class CClassA
{
public:
	virtual void Print()
	{
		printf("A ");
	}
};
void PrintFunc(CClassA a)
{
	a.Print();
}

class CClassB:public CClassA
{
public:
	virtual void Print()
	{
		printf("B ");
	}
};
void PrintFunc(CClassA *pa)
{
	pa->Print();
}

int main(void)
{
	CClassB b;
	PrintFunc(b);
	PrintFunc(&b);
	return 0;
}

A、A A           B、A B    C、B  A
D、B B            E、程序无法通过编译     F、运行后程序异常终止

4、以下关于const 的用法错误的是()

A、	const int a = 10;
B、	int func(void) const
C、	const int func(void)

D、
class A
{
public:
	void SetStr(const string& str)
	{
		_str = str;
	}
private:
	string _str;
};

E、
class A
{
public:
	const string& void GetStr(void)const
	{
		return _str;
	}
private:
	string _str;
};

5、读下题

class A
{
public:
	A();
	virtual ~A();
	int a;
};

class B : public A
{
public:
	int b;
};

A *a = new B;
B* b1 = dynamic_cast<B *>(a);
B* b2 = static_cast<B *>(a);
B* b3 = reinterpret_cast<B *>(a);

假如b1的值为 0X12345678,则b2、b3可能的值为()

A、0X12345678    0X12345674

B、0X12345674    0X12345674

C、0X12345678    0X12345678

D、0X12345674    0X12345678



 


 

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值