小编Sta*_*ser的帖子

如何在C++中定义一个const指针数组?

有没有办法定义一个指针数组,以便任何指针是const?

例如,可以char** array定义array[0]为const和array[1]const等,但是array非const并且array[j][i]是非const?

c++ arrays pointers const c++11

21
推荐指数
2
解决办法
1781
查看次数

当我得到一个`切片'的情况?

让我们看下一个代码(例如):

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++ inheritance class object-slicing

2
推荐指数
1
解决办法
119
查看次数

我可以知道我的函数有多少参数?

给定c ++中的函数,有没有办法获得我的函数所需的参数数量?(比如argcmainc语言).

例如:

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)

c++ function c++11

0
推荐指数
2
解决办法
129
查看次数

标签 统计

c++ ×3

c++11 ×2

arrays ×1

class ×1

const ×1

function ×1

inheritance ×1

object-slicing ×1

pointers ×1