|
Question |
Key words |
Anwser |
A |
assignment operator |
|
|
|
abstract class |
|
It is a class that has one or more pure virtual functions. |
|
assignment & initialization |
constructed -> change value ,Same time |
Assignment changes the value of the object that has already been constructed. Initialization constructs a new object and gives it a value at the same time. |
|
array & linked list |
|
An array is a sequential collection of same kind of data elements. Linked list is a data structure which store same kind of data elements but not in continuous memory locations and size is not fixed. The size of an array is fixed whereas size of linked list is variable. In array the data elements are stored in continuous memory locations but in linked list it is non continuous memory locations. Addition, removal of data is easy in linked list whereas in arrays it is complicated. |
|
argument passing |
call-by-value call-by-reference |
call-by-value. This method copies the value of an argument into the formal parameter of the subroutine Call-by-reference is the second way a subroutine can be passed arguments. This method copies the address of an argument (not its value) into the parameter |
B |
|
|
|
C |
constructor |
object , initialize |
Constructor creates an object and initializes it. It also creates vtable for virtual functions. It is different from other methods in a class. |
|
copy constructor |
initialze by another object |
Constructor which initializes the it‘s object member variables ( by shallow copying) with another object of the same class. If you don‘t implement one in your class then compiler implements one for you. Q20. When are copy constructors called? A20. Copy constructors are called in three cases: (1) when a function returns an object of that class by value, (2) when the object of that class is passed by value as an argument to a function, and, (3) when you construct an object based on another object of the same class (Circle c1=c2;). |
|
conversion constructor |
single argument |
constructor with a single argument makes that constructor as conversion ctor and it can be used for type conversion. for example: class Boo { public: Boo( int i ); }; Boo BooObject = 10 ; // assigning int 10 Boo object |
|
const reference arguments |
|
a) Using const protects you against programming errors that inadvertently alter data. b) Using const allows function to process both const and non-const actual arguments, while a function without const in the prototype can only accept non constant arguments. c) Using a const reference allows the function to generate and use a temporary variable appropriately. |
|
container class |
|
A container class is a class that is used to hold objects in memory or external storage. A container class acts as a generic holder. A container class has a predefined behavior and a well-known interface. A container class is a supporting class whose purpose is to hide the topology used for maintaining the list of objects in memory. When a container class contains a group of mixed objects, the container is called a heterogeneous container; when the container is holding a group of objects that are all the same, the container is called a homogeneous container. example: vector , list , map . |
|
const |
|
表示常量不可以修改 |
|
|
|
|
D |
destructor |
delete |
Destructor usually deletes any extra resources allocated by the object. |
|
data structure |
|
A data structure is a way of organizing data that considers not only the items stored, but also their relationship to each other. Advance knowledge about the relationship between data items allows designing of efficient algorithms for the manipulation of data. |
|
|
|
|
E |
encapsulation |
code and data |
Encapsulation is welding of code and data together into objects. |
F |
|
|
|
G |
globle variable & local variable |
|
In memory storage Globle variable : staic local : stack 全局变量储存在静态数据库,局部变量在堆栈。 |
H |
Heap & Stack |
|
Heap是堆,空间是由手动操作分配和释放的,它的存储区很大的自由存储区。 Stack是栈,是由是操作系统自动分配和释放的,栈上的空间是有限的。程序在编译期间变量和函数分配内存都是在栈上进行的,且在运行时函数调用时的参数的传递也是在栈上进行的。 |
I |
inheritance |
derived properties/behavior |
Inheritance is a mechanism through which a derived class inherits the properties and behavior of its base class |
|
Iterator class |
traverse container class |
A class that is used to traverse through the objects maintained by a container class. There are five categories of iterators: input iterators, output iterators, forward iterators, bidirectional iterators, random access. |
|
inline function |
expanded |
An inline function is a function whose code is expanded in line at the point at which it is invoked, rather than being called. 编译器并不是直接调用函数而是展开内联函数的代码并将其插入到程序代码中 There are two ways to create an inline function. 1)The first is to use the inline modifier. 使用 inline 修饰符 2) defining the code to a member function inside a class declaration. 类中创建内联函数。 Any function that is defined inside a class declaration is automatically made into an inline function. It is not necessary to precede its declaration with the keyword inline. |
J |
|
|
|
K |
|
|
|
L |
|
|
|
M |
malloc()/free(), new/delete |
memory , constructor/object |
1)malloc()/free() is function using c/c++, new/delete is operator , using in C++ 2)malloc()/free() is for dynamic memory using/release , new/delete is object construtor/destuctor |
|
memory allocation |
|
1)static 内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在。例如全局变 2)stack 执行函数时,函数内局部变量的存储单元都可以在栈上创建, 3)heap(dynamic ) , malloc()/free(), new/delete |
N |
|
|
|
O |
Overloading (重载) & Overriding (重写/覆盖) |
Same function name , diff augs Same fun/augs, dif method |
Overloading is a method that allows defining multiple member functions with the same name but different signatures. Overriding is a method that allows the derived class to redefine the behavior of member functions which the derived class inherits from a base class. |
P |
polymorphism |
virual funcition , inheritance |
one interface, mutipul methods virual function and inheritance make C++ to support polymorphism |
|
private,protected,public |
members and friend class +derived member and friend +everyone |
Private members are accessible only by members and friends of the class. Protected members are accessible by members and friends of the class and by members and friends of derived classes. Public members are accessible by everyone. |
|
pure virtual function |
virtual void show_area()=0; |
A pure virtual function is a function declared in a base class that has no definition relative to the base." |
|
potinter & reference |
initialization/change/void |
1) Reference must be initialized , while pointer no need. 2) After reference is initialized , the value can not be changed, but pointer object maybe 3) Can‘t use reference for a void , but can use pointer to a void value |
Q |
|
|
|
R |
reference |
& |
C++’s default parameter-passing convention is call-by-value,manually create a call-by-reference by passing the address of an argument (i.e., apointer to the argument) to a function. |
S |
struct & class |
default access level |
The default access level assigned to members of struct is public while the default access level assigned to a class is private. c和c++中struct的主要区别是c中的struct不可以含有成员函数,而c++中的struct可以。 c++中struct和class的主要区别在于默认的存取权限不同,struct默认为public,而class默认为private |
|
static member of a class |
exist once |
Static data members exist once for the entire class, as opposed to non-static data members, which exist individually in each instance of a class. |
|
static |
|
1) static Local Variables a static variable to maintain its value between function calls. 2) static Global Variables |
|
signature |
|
Function‘s signature is its name plus the number and types of the parameters it accepts. |
|
Silently write and call |
|
Constructors, destructors, copy constructors, assignment operators, and address-of operators. |
|
storage classes |
auto/register/static/extern |
auto: the default. Variables are automatically created and initialized when they are defined and are destroyed at the end of the block containing their definition. They are not visible outside that block register: a type of auto variable. a suggestion to the compiler to use a CPU register for performance static: a variable that is known only in the function that contains its definition but is never destroyed and retains its value between calls to that function. It exists from the time the program begins execution extern: a static variable whose definition and placement is determined when all object and library modules are combined (linked) to form the executable code file. It can be visible outside the file where it is defined. |
T |
template & macro |
|
Using template to create generic(template) functions and classes. In a template function or class, the type of data upon which the function or class operates is specified as a parameter. Thus, you can use one function or class with several different types of data,without having to explicitly recode specific versions for each data type. |
|
this pointer |
object‘s function call |
The this pointer is a pointer accessible only within the member functions of a class, struct, or union type. It points to the object for which the member function is called. Static member functions do not have a this pointer. |
U |
using‘ declaration? |
|
A using declaration makes it possible to use a name from a namespace without the scope operator. |
V |
virtual & non-virtual function |
run-time compile time |
The behavior of a non-virtual function is known at compile time while the behavior of a virtual function is not known until the run time. |
|
virtual function |
derived class redefined |
虚函数是指在基类中使用了vitual申明,并且在一个或多个派生类中被重新定义的函数 A virtual function is a function that is declared as virtual in a base class and redefined in one or more derived classes |
|
Virtual Destructor? |
|
sing virtual destructors, you can destroy objects without knowing their type |
|
volatile |
|
volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改, 比如:操作系统、硬件或者其它线程等。遇到这个关键字声明 |
时间: 2024-10-15 16:44:38