相关疑难解决方法(0)

没有typedef的struct - 不能在指向成员的指针中使用

我有一个简单的结构,我想要一个指向成员的指针c.我正在使用MSVC2012,如果我没有将struct abc声明为类型定义(typedef),我就不能使用它..怎么来的?

struct abc
{
    int a;
    int b;
    char c;
};

char (struct abc)::*ptt1 = &(struct abc)::c; // Error: error C2144: syntax error : 'abc' should be preceded by ')'

typedef struct abc;
char abc::*ptt1 = &abc::c; // Compiles just fine
Run Code Online (Sandbox Code Playgroud)

c++ types casting pointer-to-member

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

C++ Struct无效使用非静态数据成员

我收到有关非静态成员的无效使用以及结构成员无法正常工作的其他问题的错误,我无法理解问题所在,谢谢.

#include <iostream>
#include <string>
using namespace std;


struct classroom {
int RoomNumber;
int NumberOfChairs;
int NumberOfStudents;
int ListOfStudents[NumberOfStudents];
string LectureName;
bool Window, Projector, Available;
}classroom;




int main() {

cout << "Please enter your room number" << endl;
cin >> classroom.RoomNumber;
cout << "Enter the name of the Lecture" << endl;
cin >> classroom.LectureName;
cout << "Enter  number of students" << endl;
cin >> classroom.NumberOfStudents;
cout << "Enter " << classroom.NumberOfStudents <<  " Student Names" << endl;
cin >> classroom.ListOfStudents; …
Run Code Online (Sandbox Code Playgroud)

c++ arrays struct

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

在C++中交换class&struct关键字

我读的怪C++的功能,称为大约一个注入的类名 在这里.

我试过按照简单的程序

#include <iostream>
class test
{
    int s{3};
    public:
    int get_s()
    { return s; }
};
int main() {
    class test::test s;  // struct test::test s; also allowed. Why???
    std::cout<<s.get_s();
}
Run Code Online (Sandbox Code Playgroud)

如果我在main()程序的第一行用struct替换class关键字仍然编译并运行正常.在这里查看现场演示.为什么?我不应该得到编译错误吗?为什么编译好?

c++ injected-class-name

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

结构中的"new/delete"代替"malloc/free"在C++中有多好?

很多次,我在C++代码指针中看到了结构的分配;

struct Current{
int amp;
};

Current *cur = new Current();
Run Code Online (Sandbox Code Playgroud)

但是,"Current"是一个结构而不是类,但在C++中受支持.如何使用它来代替C类型分配,如下所示:

Current *cur = (Current*) malloc (sizeof(Current));
Run Code Online (Sandbox Code Playgroud)

这背后的基本概念是什么?我所知道的是,"结构"在C++中被认为是"类".

已知C++中struct-VS-class的概念.查询主要是关于具体的用例,因为两者都是允许的,但是应该优先考虑,为什么?

c++ struct class

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