c 类 static 函数 数组_指针_字符串

电脑杂谈  发布时间:2018-02-16 16:47:18  来源:网络整理

static类成员_c   类 static 函数_static函数地址

数组元素顺序、连续存储

声明为常量的数组必须在声明时初始化。

数组作为函数参数:数组名 = 数组首元素地址 = 数组首地址,是一个指针类型,即地址。故以数组名为参数时,在函数体内修改形参会造成主调函数中的实参数组发生修改!

数组名是一个指针常量,即不能被修改的指针类型数据。

数组类型不能是void。

数组作为参数时,一般第一维的大小不指定,即使指定也会被忽略。

对象数组:注意初始化时的构造函数,如元素个数为5,但只指定了前三个元素的初始化,则后两个元素会调用无参构造器,若该类没有无参构造器,就会出错。

class Point {
private:
float x, y;
public:
Point(int x, int y) : x(x), y(y) {
    cout << "constructor.." << endl;
}
Point() : x(0),y(0) {
    cout << "constructor.." << endl;
}
};
//-------------------------------------
void test3() {
  // 创建int数组,new delete方式
int * a = new int[5];           
Point points[5] = {Point(0,0),Point(1,2)};
// 此处,若Point没有无参构造会报错,无法通过编译。
// 存在无参构造,则数组的后三个元素都是无参构造。
}

C++访问变量的两种方式:变量名直接访问,指针间接访问。

整数0表示空指针,等效于NULL,nullptr。c 类 static 函数

指针数组:int * p[5];// p是数组,长度为5,类型为int*

以指针作为参数的时候,可以避免大量数据的传递(在栈中创建副本数据),提高效率。

若不允许函数体中修改指针指向的内容,参数列表应限定指针为指向常量的指针(区分常量指针-指向常量的指针和指针常量-该指针本身是一个常量)。

函数指针:参照函数声明的写法,最后将函数名变长变量名,然后给变量名加括号,括号内加指针符号即可。

int * (*ptrToFunc)(int *, int);//此处声明函数指针ptrToFunc,指向一类函数-返回值类型为int*,参数为int* 和int。c 类 static 函数更复杂的是参数也为函数指针的函数指针。

函数指针指向函数载入内存的首地址。

this指针:隐含于类的每一个非静态成员函数中的指针,指向当前的实例(对象)。而静态成员函数没有该指针,因为静态成员函数不属于某一个类对象,而是类的整体的功能函数,可以理解为一个一般的函数但是整合在类中。

static函数地址_c   类 static 函数_static类成员

new的资源的要delete,重复delete会异常错误。数组需要new [],delete []。

vector:c++封装的动态数组

vector<TypeName> arrayObjectName(length);

vector定义的数组对象的所有数组元素都会被初始化,所以vector的数组元素类型必须存在无参构造器。若元素类型是基本数据类型,会被初始化为0.

通过以下方式为vector数组指定初始化值,但是只能指定所有元素为同意初始值。

vector<typename> arrObjName(length,initVar);

访问vector元素,和一般数组一样用[下标]来访问元素。

但vector数组和一般数组不同,vector是一个封装的类,故变量值并非数组的首地址,而是对象的地址。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-80667-1.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...