我无法理解以下 C++ 代码段的输出。
不应该objc.fn()调用A's,fn()因为 Bfn()是private并且不应该在C. 然而,答案是:调用fn()不明确。如何?
#include<iostream>
using namespace std;
class A{
public:
void fn() { cout << "1"; }
};
class B{
void fn() { cout << "2"; }
};
class C: public A, public B {};
int main(){
C objc;
objc.fn();
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我发现很难找到下面的代码有什么问题.我试图将一个简单的整数指针复制到我的一个本地整数指针(或Interger数组)作为我的结构构造函数的参数.由于某些奇怪的原因,它在for循环内的第一次迭代中崩溃.请帮忙
struct mystruct{
UINT8 command;
UINT8 nextOffset;
UINT8* writeBuffer1;
UINT8 checkSum;
mystruct( UINT8 devAddress, UINT8 commandIn, UINT8 nextOffsetIn, UINT8 bufferSizeIn, UINT8 dataBufcheckSumIn, UINT8* writeBufferIn )
: command( commandIn )
, nextOffset( nextOffsetIn )
{
writeBuffer1 = new UINT8[bufferSizeIn];
memset( &writeBuffer1, 0, bufferSizeIn );
for( int i = 0; i < bufferSizeIn; i++ ) {
writeBuffer1[i] = writeBufferIn[i]; //Program crashes here in the first iteration itself
}
checkSum = (UINT8) ~( devAddress + command + nextOffset + dataBufcheckSumIn) + 1; dbg::info() …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 linux 的系统(cmd)执行命令(从远程服务器获取密钥)。我的问题是当远程服务器无法访问时,对于少数 IP,它只是等待而不返回,这反过来使“system()”永远挂起。我想处理这种情况。我在想一种方法让我的 system() 等待一段时间,如果命令没有返回,那么 system() 命令必须出来报告不成功的状态。
我的命令看起来像这样:
int status = system("<<<URL of the remote server>>>");
//the above command must wait for a fixed duration before coming out if no response.
Run Code Online (Sandbox Code Playgroud) 首先是第一件事.我知道没有办法直接找出方法中传入数组的大小,因为它们是作为指针接收的.我面临的情况类似但性质不同.
我有一个像这样的方法:
void method( int no_of_elements, int arr[])
{
/* checking if array has 'no_of_elements' of elements.
}
Run Code Online (Sandbox Code Playgroud)
我想检查整数数组arr[]是否有no_of_elements.基于此,我的方法将进一步处理.我知道它几乎听起来像找到的大小arr[].至少这是我能想到检查我的要求的唯一方法.任何解决这个问题的方法都将受到赞赏.