有没有办法定义一个指针数组,以便任何指针是const?
例如,可以char** array定义array[0]为const和array[1]const等,但是array非const并且array[j][i]是非const?
让我们看下一个代码(例如):
class A {
int n;
public:
int f() const { return n; }
void set(int i) { n = i; }
};
class B : public A {
public:
int g() const { return f()+1; }
};
void h(const A& a) {
a.f();
}
int main() {
B b;
A& a = b;
A* ptrA = new B;
h(b);
delete ptrA;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
现在,让我们来看看这些代码:
A&a = b; //有"切片"吗?(为什么?)
A*ptrA =新B; //有"切片"吗?(为什么?)
A a = b; //有"切片"吗?(为什么?)
当我想要使用其中任何一个时,我真的不明白,或者当你不允许使用其中一个时.这些线之间的真正区别是什么..
给定c ++中的函数,有没有办法获得我的函数所需的参数数量?(比如argc用mainc语言).
例如:
double MyFunction(int x , int y) {
int NumOfParam= //.... =2;
}
Run Code Online (Sandbox Code Playgroud)
为什么这对我有用?
例如,我想编写一个函数,将函数的所有参数插入到a中vector,我想用for loop迭代遍历参数来完成它.
例如:
void MyFunction(int x,int y , int z){
std::vector<int> params;
for(int i=0; i< ?? ; i++) {
params.push_back("ArrayOfMyArguments[i]");
}
}
Run Code Online (Sandbox Code Playgroud)