Q1.UNICODE问题
int Test()
{
_TCHAR pszTemp[] = L"trend mirco";
}
sizeof(pszTemp) = ? _countof(pszTemp) = ? strlen(pszTemp) = ?
A:字符串前加L表示将字符串转化为unicode型;unicode字符串每个字符占2个字节,扩展为:"X\nX\n"的形式; 因此,sizeof(pszTemp)=24;
strlen(pszTemp)是计算从pszTemp指向的地方开始,到第一个‘\n’出现为止,一共有多少个char字符,所以strlen(pszTemp)=1;
_countof是C++中计算一个数组长度的宏,因此 _countof(pszTemp) = 12
Q2:类占用空间大小的问题
#include <stdio.h>
class CS
{
static int n ;
int m;
int func();
};
main()
{
printf("%d", sizeof(CS));
getchar();
}
A:输出是4,static 的数据是分配在全局区;函数是放在程序代码区(专门用来存放函数的二进制代码)
Q3:
#include <stdio.h>
class A
{
public:
void f(){printf("foo");};
};
int main()
{
A* p = NULL;
printf("---");
if(!p)
{
A a ;
p = &a;
}
p->f();
getchar();
return 0;
}
- 每一个非虚成员函数实际上都等同于一个普通的C函数,其中第一个参数为对象指针,即我们常说的this指针。例如:
-
-
上面的A的function函数实际等同于:<SPAN style="COLOR: #ff0000">A::Function() ç==================èFunction(A*this);
-
-
</SPAN>与此不同,对每一个虚成员函数的调用都是通过虚函数表的虚指针vptr来进行调用的,如上面的p2->function一句将被编译器解释为:
-
-
(* p2->vptr[1] )(p2)
-
-
很容易理解,虚函数的调用是动态决定的。也很容易理解,21行crash,18行正常。很显然,如果在A类的成员函数function里,有去使用成员变量,该函数同样会crash
Q4:
#include <iostream>
#include <string>
class MyString: public std::string
{
public:
MyString(const char* sz):std::string(sz){std::cout<<*this<<std::endl;}
};
const size_t MAX_STRING_SIZE = 1024;
/**
1)采用__cdecl约定时,函数参数按照从右到左的顺序入栈,并且由调用函数者把参数弹出栈以清理堆栈。因此,实现可变参数的函数只能使用该调用约定。由于每一个使用__cdecl约定的函数都要包含清理堆栈的代码,所以产生的可执行文件大小会比较大。
2)采用__stdcall约定时,函数参数按照从右到左的顺序入栈,被调用的函数在返回前清理传送参数的栈,函数参数个数固定。由于函数体本身知道传进来的参数个数,因此被调用的函数可以在返回前用一条ret n指令直接清理传递参数的堆栈。
*/
MyString __stdcall MyStringCat(MyString s1,MyString s2)
{
char buf[MAX_STRING_SIZE];
sprintf(buf,"%s,%s",s1.c_str(),s2.c_str()); //c_str()就是得到两个指针,指向s1 s2在内存里的地址
return buf;
}
int main()
{
MyString s = MyStringCat("I hate","C");
return 0;
}
/**
由于函数是从右往左入站的,所以结果是:
c
I hate
c,Ihate
*/
Q5:vector容器的使用方法
A:push_back(?):把?追加到vector的后面
remove_if(开始位置,结束位置,删除条件):在一个给定范围内删除满足一定条件的元素,在删除元素的过程中不改变剩余元素的位置,并同时返回一个没有要删除元素的新容器的迭代器end值。ps:erase()函数删除一个元素之后,后面的迭代器就会失效
分享到:
相关推荐
1. **C++多态与继承** - 在题目中,类`A`定义了三个`func`函数,其中两个是虚函数,一个没有声明为虚函数。类`B`继承自`A`并重写了这些函数。在`main`函数中,通过基类指针`pA`和`pcA`调用了派生类`B`的成员函数。...
### Savitzky-Golay滤波器C++代码解析与应用 #### 一、概述 在数据处理领域,平滑处理是一种常见的需求,特别是在信号处理、图像处理以及数据分析中。Savitzky-Golay滤波器作为一种有效的平滑算法,在保持原始数据...
《趋势科技笔试题详解及C++编程实践》 趋势科技作为全球知名的安全软件公司,其招聘过程中的笔试题往往涵盖了逻辑思维、问题解决、编程等多个方面,旨在考察应聘者的综合素质。本文将详细解析其中的几道典型题目,...
趋势科技意识到,互联网环境需要一个强大、可靠的病毒防护解决方案,并且需要用到趋势科技协助Intel和Novell等公司开发防病毒软件所获得的宝贵知识和经验,借助这些开发经验,趋势科技为NT和Netware服务器构建了新...
本文旨在回顾C++程序语言的发展历程,特别聚焦于1991年至2006年间的重要事件和发展趋势。这段时间不仅见证了C++成为国际标准化组织(ISO)标准的过程,还涵盖了C++0x(即C++03标准修正版)的发布。文章不仅仅关注...
趋势科技的笔试真题,全英文扫描的很清晰,对于倾心趋势的同学,很具有参考价值。
趋势科技 PC-cillin序列号,趋势科技——网络安全软件及服务领域的全球领导者,以卓越的前瞻和技术革新能力引领了从桌面防毒到网络服务器和网关防毒的潮流,以独特的服务理念向业界证明了趋势科技的前瞻性和领导地位...
【标题】"2014趋势科技校招9月23日南京笔试题目中的代码"涉及的是2014年趋势科技公司在南京进行校园招聘时的笔试环节,该环节主要测试应聘者的编程能力和解决问题的能力。从描述来看,提供的压缩包包含了一些编程...
1. **兼容性:**C++ 是基于 C 语言开发而来,因此大部分 C 代码可以在 C++ 中直接使用。 2. **面向对象:**C++ 支持类和对象的概念,可以实现封装、继承和多态等特性。 3. **泛型编程:**通过模板机制支持泛型编程,...
在信息技术日新月异的今天,教育行业也逐步拥抱了数字化转型,"q-yongze-my-three-master_C++_源码"项目正是这种趋势的一个典型代表。这个项目以C++编程语言为基础,自主研发了一套全面的功能系统,涵盖了知识付费、...
【趋势科技笔试试题总结】 本篇文章主要针对趋势科技公司的...以上是趋势科技笔试中涉及的一些关键知识点,这些知识点在软件开发尤其是C++编程中非常重要,理解并掌握它们对于提升编程技能和解决实际问题大有裨益。
这个题目考察的是对C++中字符串操作的理解与应用。可以使用标准库中的字符串函数来完成任务,如`strlen`, `strcpy`, `strcat`等。 - **strlen**: 用于计算字符串的长度,不包括结束符`\0`。 - **strcpy**: 用于复制...
以上是根据给定的趋势科技笔试题目的内容所整理的部分知识点。这些知识点涵盖了基础的情商智商测试、专业技能测试(包括编程语言选择题、网络技术问答、英文阅读理解等)、以及具体的C++编程示例题。希望这些内容...
综上所述,"MK统计检验(c++版)"提供了在C++环境中执行Mann-Kendall趋势和突变性检验的功能,这在进行数据分析项目时能帮助用户快速准确地识别数据序列中的潜在趋势和变化点。通过理解和应用这个工具,IT从业者可以...
杂项部分,书中提供了对未来开发趋势的建议,并讨论了如何在同一个程序中混合使用C++和C语言,强调了使用标准C++语言的重要性。 附录部分,本书还提供了推荐读物列表,一个AUTO_PTR的实现实例,以及在C++中如何计算...
本软件针对趋势防毒墙网络版Officescan客户端开发的管理员辅助工具,可以清除趋势防毒墙客户端的退出或者卸载密码,也可以清除Officescan的未上报病毒日志。本程序在WinXP下编译通过,在Officescan7.3下测试通过。
类`B`继承自`A`并重写了部分`func`函数。在`main`函数中,通过基类指针`pA`调用`func`,由于`func(int data)`是虚函数,因此调用的是派生类`B`的版本,输出`B2 :1`。而`func("test")`调用的是基类`A`的`func(char *...
2014趋势科技校招9月23日南京笔试题目。 图中所选非正式答案,答案在整理中,过后上传。
由于提供的信息有限,我们无法直接从文件的标题、描述、标签和部分内容中得到详尽的知识点。不过,根据文件标题“豆瓣远程笔试-2020Android开发实习生笔试题.pdf”,我们可以推测出一些与Android开发和远程笔试相关...