
c++学习
「已注销」
这个作者很懒,什么都没留下…
展开
-
math.h的abs返回值()
math.h的abs返回值() 正确答案: C 你的答案: A (错误)A.不可能是负数 B.不可能是正数 C.都有可能 D.不可能是0c中的函数申明为 int abs(int num); 正常情况下, num为0或正数时,函数返回num值; 当num为负数且不是最小的负数时(不要问我最小的int类型负数是多少,上面那个图里面有真相),函数返回num的对应绝对值数,即将内存中该二进原创 2016-04-08 11:11:47 · 4601 阅读 · 0 评论 -
关于c++中的cin
关于c++中的cin在程序中我们经常看到关于cin这样的用法while(!cin>>val) { ……; }我一开始想知道cin的返回值是什么于是就在网上去搜集资料,后面突然想到cin是istream一个对象,不是一个函数 也就没有什么返回值具体的继承是这样的:接下来我们找到 发现这是一个重载过的运算符点进去看一下如果没有结束符或者输入成功就返回true,否则返回false并且这是原创 2017-03-25 10:42:47 · 458 阅读 · 0 评论 -
继承类的大小
在32位操作系统gcc编译器环境下,下面程序的运行结果为()#include <iostream> using namespace std; class A { public: int b; char c; virtual void print() { cout << "this is father’s fuction! " << endl;原创 2016-04-08 11:21:48 · 1330 阅读 · 0 评论 -
几种动态分配内存的方法及区别
1) malloc 函数: void *malloc(unsigned int size) 在内存的动态分配区域中分配一个长度为size的连续空间,如果分配成功,则返回所分配内存空间的首地址,否则返回NULL,申请的内存不会进行初始化。 2)calloc 函数: void *calloc(unsigned int num, unsigned int size) 按照所给的数原创 2016-04-21 19:48:19 · 2485 阅读 · 0 评论 -
static_cast 的用法
static_cast < type-id > ( expression ) 该运算符把expression转换为type-id类型,但没有运行时类型检查来保证转换的安全性。它主要有如下几种用法: ①用于类层次结构中基类(父类)和派生类(子类)之间指针或引用的转换。 进行上行转换(把派生类的指针或引用转换成基类表示)是安全的; 进行下行转换(把基类指针或引用转换成派生类表示)时,由于没有动态原创 2016-04-21 10:21:08 · 1075 阅读 · 0 评论 -
指针运算
1.指针自增、自减每次移动的偏移量是指针所指向对象的字节大小2.指针相减的值是指针地址的偏移除以指针每次移位的大小 举例:#include<stdio.h>void main(){ short *p,*q; short arr[15]={0}; p=q=arr; p++; printf("%d,",p-q); printf("%d,",(char原创 2016-04-19 17:17:31 · 578 阅读 · 0 评论 -
缺省参数
缺省参数是静态绑定的。所以,永远记住: 绝不重新定义继承而来的缺省参数举例:class A{public: virtual void func(int val = 1) { std::cout<<"A->"<<val <<std::endl;} virtual void test() { func();}};class B : public A{publ原创 2016-04-19 16:45:29 · 572 阅读 · 0 评论 -
多态分类
1.参数多态包括函数模板和类模板2.包含多态 virtualclass A{ virtual void foo() { printf("A virtual void foo()"); }};class B : public A { void foo() { printf("B void foo()"原创 2016-04-17 10:00:09 · 533 阅读 · 0 评论 -
c++多重继承的内存分布
观察下面一段代码:class ClassA{public: virtual ~ ClassA(){}; virtual void FunctionA(){};};class ClassB{public: virtual void FunctionB(){};};class ClassC : public ClassA,public ClassB{ pu原创 2016-04-16 10:02:29 · 1687 阅读 · 0 评论 -
c语言中的未定义行为
下列 C 代码中,不属于未定义行为的有_A.Int i=0;i=(i++); B.char *p=”hello”;p[1]=’E’; C.char *p=”hello”;char ch=*p++; D.int i=0;printf(“%d%d\n”,i++,i–); E.都是未定义行为 F.都不是未定义行为正确答案: C A,D:表达式的先后顺序,是由编译器决定的,有可能不同 B:常原创 2016-04-14 08:56:28 · 4732 阅读 · 0 评论 -
c++默认类型转化
以下代码执行后,val的值是_:unsigned long val = 0;char a = 0x48;char b = 0x52;val = b << 8 | a;正确答案: B A.20992 B.21064 C.72 D.0答案解析: 这里面涉及到了默认类型转换:当出现在表达式里时,有符号和无符号的char和short都会被自动转换为int类型,在需要的情况下,将自动转换为un原创 2016-04-14 08:49:54 · 710 阅读 · 0 评论 -
字符串&malloc&strlen&strcpy
如下程序用于输出“Welcome to Huawei Test”,请指出其中的两处错误。char * GetWelcome(void){ char * pcWelcome; char * pcNewWelcome; pcWelcome="Welcome to Huawei Test"; pcNewWelcome=(char *)malloc(strlen(pcWelc原创 2016-04-12 16:57:40 · 1781 阅读 · 0 评论 -
继承虚函数&数组名做参数
#include<iostream>using namespace std;class Base{public: virtual int foo(int x) { return x * 10; } int foo(char x[14]) { return sizeof(x) + 10; }};class Deriv原创 2016-04-12 16:53:51 · 498 阅读 · 0 评论 -
组合与继承
有这样一个类:class Eye{ public: void Look(void);};现在希望定义一个Head类,也想实现Look的功能,应该使用()方法,实现代码重用。 正确答案: BA.继承 B.组合 C.模板 D.过滤答案解析: 组合是在新类中以原有类的对象作为数据成员,继承是在不改变现有的类的基础上,采用现有类的形式并在其中添加新代码,组合一般用于在新类中使用原创 2016-04-12 16:45:58 · 448 阅读 · 0 评论 -
数组名作为函数的参数传递给函数
在32位机器中,如下代码:void example(char acWelcome[]){ printf("%d",sizeof(acWelcome)); return;}void main(){ char acWelcome[]="Welcome to Huawei Test"; example(acWelcome); return;}的输出是?原创 2016-04-08 11:16:14 · 1331 阅读 · 0 评论 -
C++线程安全的单例模式
C++线程安全的单例模式首先看一下普通的单例模式实现:class singleton{ public: static singleton* getinstance(){ if(p==null){ p = new singleton(); } return p; } protect: singleton原创 2017-03-25 21:15:04 · 500 阅读 · 0 评论