小编use*_*988的帖子

C++构造函数和析构函数顺序

我正在尝试一个关于基类和成员构造和破坏的代码,我对构造函数和析构函数的一些顺序感到困惑,这段代码的输出是:

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)

c++ constructor destructor

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

类和结构嵌套

我对这段代码不是很清楚

外面是一个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)

c++ struct class

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

cmake parse错误:无效的转义序列\ o

我有很多类似的错误警告信息,如下所示:

 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)

cmake

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

'#'在#define中的含义

我想知道代码"\"的含义.我以前见过一些解释,但我忘了,谁能告诉我?

#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)

c++ char

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

关于sizeof()类的不同类型

可能重复:
为什么structof sizeof不等于每个成员的sizeof之和?

为什么输出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)

c++ size sizeof

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

我运行 UNIX Network Programming Volume 1(3rd) 但是如何配置网络环境?

我只是运行“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,它给出了“连接错误:连接被拒绝”的信息,我该怎么办?

附上这个示例代码:

介绍/daytimetcpcli.c

  #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 linux networking

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

C#代码无法理解

我有一个问题,因为我是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#

-3
推荐指数
1
解决办法
248
查看次数

标签 统计

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