小编san*_*eep的帖子

static_cast <Derived*>(Base pointer)是否会产生编译时错误?

static_cast(Base pointer)应该给出编译时错误吗?

class A
{
public:
    A()
    {

    }
};

class B : public  A
{
 public:
     B()
     {
     }
};

int main()
{
    A *a=new A();
    B * b=static_cast<B*>(a);   // Compile Error?
}
Run Code Online (Sandbox Code Playgroud)

c++ casting

13
推荐指数
2
解决办法
9545
查看次数

为什么不调用成员类的复制构造函数?

class member
{
public:
    member()
    {
       cout<<"Calling member constr"<<'\n';
    }
    member(const member&)
    {
        cout<<"Calling member copy constr"<<'\n';
    }
};

class fred
{
public:
    fred()
    {
        cout<<"calling fred constr"<<'\n';
    }
    fred(const fred &)
    {
        cout<<"Calling fred copy constr"<<'\n';
    }
protected:
    member member_;
};

int main()
{
    fred a;
    fred b=a;
}

Output:
Calling member constr
calling fred constr
**Calling member constr**
Calling fred copy constr
Run Code Online (Sandbox Code Playgroud)

c++ copy-constructor

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

为什么要调用来自直接父级的函数而不是祖父级类.这被称为函数覆盖吗?

class A
{
public:
void test ()
{
cout<<"In A";
}
};
class B :public A
{
public:
void test ()
{
cout<<"In B";
}
};
class C : public B
{

public:
int c;
};
int main()
{
C c;
c.test();
}

The result is: In B...
Run Code Online (Sandbox Code Playgroud)

c++

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

我们说Reference是const指针.为什么我能够为ref B分配一个新变量?以下程序编译成功

#include<iostream.h>

int main()
{
int a=10;
int &b=a;

cout<<"B"<<'\n'<<b;
cout<<"A"<<'\n'<<a;
b=100;
cout<<"B"<<'\n'<<b;
cout<<"A"<<'\n'<<a;
int c=20;
b=c;

cout<<"C"<<'\n'<<c;
cout<<"B"<<'\n'<<b;
}
Run Code Online (Sandbox Code Playgroud)

c++ reference variable-assignment

0
推荐指数
1
解决办法
191
查看次数

调用虚函数时出错

调用Derived类中定义但在Base类中不存在的虚函数时出错?当指针指向派生类时,为什么会出现此错误?

#include<iostream.h>

class A{
public:
virtual void fun()
{cout<<"A::fun()";
}
};

class B : public A
{
public:

virtual void fun()
{cout<<"B::fun()";
}
virtual void func()
{cout<<"B::func";
}
};

int main()
{
A *obj1=new B;
obj1->fun();
obj1->func();
}
Run Code Online (Sandbox Code Playgroud)

c++

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