我有以下代码:
class A {
private:
int i;
};
class B : public A {
private:
int j;
};
Run Code Online (Sandbox Code Playgroud)
当我检查时sizeof(B),似乎是sizeof(base) + sizeof(derived).但是,我对继承的理解是private基类的成员不会被继承.那为什么他们被包括在结果中sizeof(B)呢?
无法直接为引用变量分配整数值,例如:
int &x=10; //not possible
Run Code Online (Sandbox Code Playgroud)
有没有其他方法可以修改此语句以使其成为可能?
但不是这样的:
int a=10;int &x=a;
Run Code Online (Sandbox Code Playgroud)
这很好用.但我想要一些其他方式或修改我的表达并让它工作!
问题可能看起来很愚蠢,但我想问..有没有办法我们可以在具有相同签名但不同返回类型(如int fun(int)和float fun(int))的类中声明一个方法,并且在对象期间创建我们可以动态决定要执行哪个函数!我有编译错误...有没有其他方法来实现这个逻辑可能正在使用模板...
我有一个问题陈述,如:"如何只在一次遍历中找到单链表的中间节点,而扭曲是我们不知道链表中的节点数?"
我有一个答案,比如"当你遍历链表并递增计数器直到你到达列表的末尾时,取一个向量并开始推送所有节点的地址".所以最后我们可以得到列表中的节点数量,如果是偶数(计数器/ 2)或者奇数(计数器/ 2 +计数器%2)给出中间节点数,那么我们可以得到vectore.at(middlenodenumber)点到中间节点".
这很好......但这是浪费内存存储一个非常大的链表的所有地址!那么我们如何才能有更好的解决方案呢?
我有如下代码:
class Singleton {
private:
int i;
static bool stnflag;
static Singleton* single;
Singleton(int a)
{
i=a;
}
public:
static Singleton* getinstance(int);
void function();
~Singleton()
{
cout << "destructor is being called" << endl;
stnflag=false;
}
};
bool Singleton::stnflag=false;
Singleton* Singleton::single=NULL;
Singleton* Singleton::getinstance(int a)
{
if(!stnflag)
{
single = new Singleton(a);
stnflag=true;
return single;
}
else
{
cout << "already single object created" << endl;
return single;
}
}
void Singleton::function()
{
cout << "private member value in single ton …Run Code Online (Sandbox Code Playgroud)