首页 / C++ / C++程序员应该掌握的东西
C++程序员应该掌握的东西
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了C++程序员应该掌握的东西,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3445字,纯文字阅读大概需要5分钟。
内容图文
![C++程序员应该掌握的东西](/upload/InfoBanner/zyjiaocheng/832/5f7b86ed5f44412fa4f698d2910daa52.jpg)
C++程序员应该掌握的东西
一个C/C++程序员合不合格的必要条件,我觉得他应该理解了指针、理解了引用,知道通用类型数据在计算机中的内存表示方法,知道什么数据放在栈里,什么数据放在数据区,什么数据放在堆里,知道数据的对齐方式,知道怎么写代码更高效,知道对象的基本模型。下面通过实例逐个介绍这些大家应该掌握的内容:
1. 齐问题
typedef union tagData1 {
double a;
char b;
int c;
} TData1;
typedef union tagData2{
char b;
double a;
int c;
} TData2;
typedef union tagData3 {
char b;
int c;
double a;
} TData3;
printf(“%d %d %d”,sizeof(TData1), sizeof(TData2), sizeof(TData3));
typedef struct tagData1 {
double a;
char b;
int c;
} TData1;
typedef struct tagData2 {
char b;
double a;
int c;
} TData2;
typedef struct tagData3 {
char b;
int c;
double a;
} TData3;
printf(“%d %d %d”,sizeof(TData1), sizeof(TData2), sizeof(TData3));
2. 据在计算机中的表示问题
typedef union tagData1 {
float a;
unsigned char ch[4];
} TData1;
typedef union tagData2 {
int a;
unsignedchar ch[4];
} TData2;
TData1 data1;
data1.a = -3.0;
for (int i = 0; i < 4; i++)
printf(“%02x ”, data1.ch[i]);
TData2 data2;
data2.a = -3;
for (int i = 0; i < 4; i++)
printf(“%02x ”, data2.ch[i]);
3. 据的存放位置
static int a = 0;
void func(int b, int c)
{
static int d = 0;
int e = 0;
char *str = "hello";
TData *pData = new TData;
}
class CData {
public:
void func(int bb, int cc)
{
static int dd = 0;
int ee = 0;
char *str1 = "hello";
TData *pData1 = new TData;
}
private:
static int aa;
int ff;
};
a,b,c,d,e,str,pData,*str,*pData,分别存放在哪里呢?
aa,bb,cc,dd,ee,ff,str1,pData1,*str1,*pData1存放在哪里呢?
4. 象模型问题
class CBase {
public:
void f(){printf(“base f()\n”);}
void g() {printf(“base g()\n”);}
};
class CDerived : public CBase{
public:
void f(){printf(“derived f()\n”);}
void g() {printf(“derived g()\n”);}
};
CBase base;
CDerived derived;
base = derived;
base.f();
base.g();
CBase *pBase = NULL;
CDerived *pDerived = new CDerived();
pBase = pDerived;
pBase->f();
pBase->g();
class CBase {
public:
virtual void f() {printf(“base f()\n”);}
virtual void g() { printf(“base g()\n”);}
};
class CDerived : public CBase{
public:
void f(){printf(“derived f()\n”);}
void g() {printf(“derived g()\n”);}
};
CBase base;
CDerived derived;
base = derived;
base.f();
base.g();
CBase *pBase = NULL;
CDerived *pDerived = new CDerived();
pBase = pDerived;
pBase->f();
pBase->g();
base = *pDerived;
base.f();
base.g();
内容总结
以上是互联网集市为您收集整理的C++程序员应该掌握的东西全部内容,希望文章能够帮你解决C++程序员应该掌握的东西所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。