我正在尝试一个关于基类和成员构造和破坏的代码,我对构造函数和析构函数的一些顺序感到困惑,这段代码的输出是:
Base1 constructor
Member1 constructor
Member2 constructor
Derived1 constructor
Member3 constructor
Member4 constructor
Derived2 constructor
Derived2 destructor
Member4 destructor
Member3 destructor
Derived1 destructor
Member2 destructor
Member1 destructor
Base1 destructor
Run Code Online (Sandbox Code Playgroud)
看到前四行,但我应该下令
Base1 constructor
Derived1 constructor
Member1 constructor
Member2 constructor
Run Code Online (Sandbox Code Playgroud)
谁能给我一些解释?
#include "stdafx.h"
#include <fstream>
using namespace std;
ofstream out("order.out");
#define CLASS(ID) class ID { \
public: \
ID(int) { out << #ID " constructor\n"; } \
~ID() { out << #ID " destructor\n"; } \
};
CLASS(Base1);
CLASS(Member1);
CLASS(Member2);
CLASS(Member3);
CLASS(Member4); …Run Code Online (Sandbox Code Playgroud) 我对这段代码不是很清楚
外面是一个class和内在的struct,任何人都可以帮我解释一下吗?
class Stack {
struct Link {
void* data;
Link* next;
Link(void* dat, Link* nxt):
data(dat),next(nxt) {}
}* head;
public:
Stack():head(0) {}
~Stack() {
require(head==0,"Stack not empty");
}
void push(void* dat) {
head = new Link( dat, head );
}
void peek() const {
return head ? head->data : 0;
}
void* pop() {
if(head == 0) return 0;
void* result = head->data;
Link* oldHead = head;
head = head->next;
delete oldHead;
return result;
} …Run Code Online (Sandbox Code Playgroud) 我有很多类似的错误警告信息,如下所示:
CMake Warning (dev) at cmake/common.cmake:5 (source_group):
Syntax error in cmake code at
C:/yumen/wxgisgdal-read-only/cmake/common.cmake:5
when parsing string
Header Files\\ogr\ogrsf_frmts
Invalid escape sequence \o
Run Code Online (Sandbox Code Playgroud)
文件"C:/yumen/wxgisgdal-read-only/cmake/common.cmake"是这样的:
#add data
macro(add_files_macro FPATH FGROUP)
file(GLOB GDAL_AHHEADERS ${FPATH}/*.h ${FPATH}/*.hpp)
set(GDAL_HHEADERS ${GDAL_HHEADERS} ${GDAL_AHHEADERS})
source_group("Header Files\\${FGROUP}" FILES ${GDAL_AHHEADERS})
file(GLOB GDAL_ACSOURCES ${FPATH}/*.cpp ${FPATH}/*.cc ${FPATH}/*.c)
set(GDAL_CSOURCES ${GDAL_CSOURCES} ${GDAL_ACSOURCES})
source_group("Source Files\\${FGROUP}" FILES ${GDAL_ACSOURCES})
endmacro()
Run Code Online (Sandbox Code Playgroud)
下面是cmake错误信息
gdal version=[1.9.0]
GDAL lib name ... wxgisgdal19
c++ compiler ... cl
CMake Error at CMakeLists.txt:92 (option):
option called with incorrect number of arguments: BUILD_RELEASE_DEBUG_DIRS
Set OFF …Run Code Online (Sandbox Code Playgroud) 我想知道代码"\"的含义.我以前见过一些解释,但我忘了,谁能告诉我?
#include "stdafx.h"
#include <fstream>
using namespace std;
ofstream out("order.out");
#define CLASS(ID) class ID {\
public: \
ID(int) { out<<#ID " constructor\n;} \
~ID() { out<< #ID "destructor\n";}\
};
Run Code Online (Sandbox Code Playgroud) 为什么输出8?
不是sizeof(int)+sizeof(char) = 5吗?
class CBase
{
int a;
char p;
};
int main() {
cout<<"sizeof(CBase)="<<sizeof(CBase)<<endl;
getchar();
} ///:~
Run Code Online (Sandbox Code Playgroud) 我只是运行“1.2 A Simple Daytime Client”示例。但是在ubuntu下,如何配置网络环境?
示例用法是“solaris % a.out 206.168.112.96”,这里我应该如何更改IP。我通过局域网连接到互联网。我通过 ifconfig 显示的 ip 是
inet address: 192.168.0.109,但是在这里,当我输入时a.out 192.168.0.109,它给出了“连接错误:连接被拒绝”的信息,我该怎么办?
附上这个示例代码:
#include "unp.h"
int
main(int argc, char **argv)
{
int sockfd, n;
char recvline[MAXLINE + 1];
struct sockaddr_in servaddr;
if (argc != 2)
err_quit("usage: a.out <IPaddress>");
if ( (sockfd = socket(AF_INET, SOCK_STREAM, 0)) < 0)
err_sys("socket error");
bzero(&servaddr, sizeof(servaddr));
servaddr.sin_family = AF_INET;
servaddr.sin_port = htons(13); /* daytime server */
if (inet_pton(AF_INET, argv[1], &servaddr.sin_addr) <= 0)
err_quit("inet_pton error for %s", …Run Code Online (Sandbox Code Playgroud) 我有一个问题,因为我是c ++的编码器,现在我需要阅读一些c#代码.这是命名空间中的一个类,我不明白的是最后一个成员;
public string FilePath
{
get { return this.filePath; }
set { this.filePath = value; }
}
Run Code Online (Sandbox Code Playgroud)
我不知道它是成员变量还是成员函数.
如果将其视为成员函数,则应该如此
public string FilePath(***)
{
****;
}
Run Code Online (Sandbox Code Playgroud)
但是这里它没有()类似的参数,它是什么类型的函数?
class INIFileOperation
{
private string filePath;
[DllImport("kernel32")]
private static extern long WritePrivateProfileString(string section,
string key,
string val,
string filePath);
[DllImport("kernel32")]
private static extern int GetPrivateProfileString(string section,
string key,
string def,
StringBuilder retVal,
int size,
string filePath);
public string ReadAppPath()
{
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
return appPath + "\\Setting.ini";
}
public INIFileOperation()
{
this.filePath …Run Code Online (Sandbox Code Playgroud) c++ ×4
c ×1
c# ×1
char ×1
class ×1
cmake ×1
constructor ×1
destructor ×1
linux ×1
networking ×1
size ×1
sizeof ×1
struct ×1