- Siêu lớp và danh mục iOS/Objective-C
- object-c - -1001 lỗi khi NSURLSession vượt qua httpproxy và /etc/hosts
- java - Nhận địa chỉ url bằng lớp mạng
- ios - Âm thanh không phát trong thông báo đẩy
Tôi nhận được lỗi sau trong mã của mình, tôi không hiểu tại sao vì "socketfd" được khai báo trong client.hpp và được sử dụng trong hàm tạo trong client.cpp, nhưng khi tôi thử sử dụng nó sau này thì tôi gặp lỗi.
Đầu ra thiết bị đầu cuối:
g++ client.cpp -o client.o -pthread -c -std=c++11
client.cpp: Trong hàm 'void sendMessage(std::string)':
client.cpp:37:23: error: 'socketfd' không được khai báo trong phạm vi này
client.hpp
#include
#include
#include
#include
lớp Khách hàng {
public:
Khách hàng();
~Khách hàng();
void sendMessage(std::string);
private:
trạng thái int, socketfd;
cấu trúc addrinfo Host_info;
struct addrinfo *host_info_list;
};
client.cpp
#include "client.hpp"
Khách hàng::Khách hàng() {
memset(&host_info, 0, sizeof Host_info);
std::cout << "Thiết lập cấu trúc..." << std::endl;
Host_info.ai_family = AF_UNSPEC;
Host_info.ai_socktype = SOCK_STREAM;
trạng thái = getaddrinfo("192.168.1.3", "8888", &host_info, &host_info_list);
nếu (trạng thái != 0) {
std::cout << "lỗi getaddrinfo" << gai_strerror(trạng thái);
}
std::cout << "Tạo ổ cắm..." << std::endl;
socketfd = socket(host_info_list->ai_family, Host_info_list->ai_socktype, Host_info_list->ai_protocol);
nếu (socketfd == -1) {
std::cout << "Lỗi ổ cắm";
}
std::cout << "Đang kết nối..." << std::endl;
trạng thái = kết nối (socketfd, Host_info_list->ai_addr, Host_info_list->ai_addrlen);
nếu (trạng thái == -1) {
std::cout << "Lỗi kết nối" << std::endl;
}
std::cout << "Đã kết nối thành công" << std::endl;
}
Khách hàng::~Khách hàng() {
}
void sendMessage(std::string msg) {
std::cout << "Đang gửi tin nhắn: " << msg << std::endl;
int len;
ssize_t byte_sent;
len = strlen(msg.c_str());
byte_sent = send(socketfd, msg.c_str(), len, 0);
}
Đây là C++ đầu tiên tôi thực hiện và tôi hơi bối rối không hiểu tại sao tôi lại gặp phải lỗi này.
câu trả lời hay nhất
您在 gửiMessage()
mất tích trước đó Khách hàng::
:
void Client::sendMessage(std::string msg) {
^^ ^^ ^^ ^^
Về lỗi c++ - C 11: 'X' không được khai báo trong phạm vi này, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/15455156/
Tôi có một lớp mẫu ExpOf.h: lớp mẫu ExpOf{ ... } mà tôi sử dụng nhiều lần trong toàn bộ mã, ví dụ T = double [và các lớp khác ExpOf lẽ ra không biết gì về nó]. Vì vậy tôi nghĩ việc biên dịch nó một lần là một
Nếu bạn có một lớp tên là "Rock", bạn sẽ làm những việc như: - int main() { Rock; } Tại sao tôi gặp lỗi "Tuyên bố không khai báo gì"? Không phải nó chỉ nên gọi hàm tạo mặc định và tạo đối tượng tại thời điểm đó sao?
Đây là một câu hỏi rất nghiệp dư và tôi chắc chắn rằng câu hỏi này sẽ có câu trả lời rất đơn giản, nhưng dường như tôi không thể hiểu được vấn đề. Tôi có một tệp tiêu đề với tệp .cpp tương ứng, nhưng vì lý do nào đó, bất cứ khi nào tôi cố gắng biên dịch nó bằng g++, tôi đều gặp lỗi:
Tôi đang sử dụng MinGW để chuyển đổi dự án Linux của mình sang biên dịch trên Windows. Nó biên dịch và chạy tốt trên Linux, nhưng khi tôi cố gắng biên dịch nó bằng MinGW thì nó đưa ra thông báo lỗi sau: camera.h:
Tôi nhận được "việc khai báo không khai báo bất kỳ lỗi nào [-fpermissive]"; đây là mã của tôi;
Tôi đang viết một số mã cython và tôi gặp phải một vấn đề lạ. Khi tôi cố gắng chuyển một đối tượng dưới dạng cấu trúc trực tiếp từ python sang C, mã do cython tạo ra vẫn ổn, nhưng gcc không thích đầu ra mã và đưa ra lỗi sau: erro
typedef struct BO2Offsets { struct Uy tín { u32 offset = 0x000000 char da;
Tôi không hiểu điều gì đó trong C++ và gcc không thích cách tôi tiến hành. Tôi đã làm điều này: if (!fModeMdi) MyFirstClass* main = (MyFirstClas
Trong các câu lệnh switch-case, việc khai báo có khởi tạo là không hợp lệ, nhưng việc khai báo và gán sau đó được cho phép. Như được hiển thị trong đoạn mã sau
Tôi nhận được cảnh báo lạ trong tệp giao diện của mình. Điều này cũng xuất hiện trên dòng nơi tôi khai báo thuộc tính cho điều này. Có ai có thể giúp tôi được không? Câu trả lời hay nhất Ở đâu đó trong dự án của bạn, bạn có #define xác định xOffset là trống (ngoại trừ nhận xét). Như thế này: #
Khai báo +x làm gì dưới đây? (Bash cụ thể.) Tôi hiểu khai báo -x, nhưng không khai báo +x: function the_func { khai báo +x MY_VA
Vì tôi mới sử dụng Symfony nên tôi đang cố gắng sử dụng Doctrine để tạo mối quan hệ thực thể. Tôi gặp lỗi "'Báo cáo' thuộc tính trong [gói/thực thể/file_location" đã được khai báo nhưng khi tôi cố cập nhật
đóng cửa. Câu hỏi này không thể lặp lại được hoặc do lỗi chính tả. Hiện tại nó không chấp nhận câu trả lời. Bạn muốn cải thiện câu hỏi này? Đã cập nhật câu hỏi theo chủ đề cho Stack Overflow. Đóng cửa 2 năm trước. Imp
Đây là mã gây ra lỗi cho tôi: TAdvSmoothDockItems = class(TCollection) Private FOWner: TAdvSmoothDock;
Tôi rất mới với python và tôi đang cố gắng tạo một chương trình GUI đơn giản. Tuy nhiên, tôi đã gặp phải một "sự cố", chính xác là một cảnh báo có nội dung: 'm' không được xác định trong phạm vi toàn cầu (Python (Biến không được xác định trên toàn cầu)). Tôi biết nếu bạn muốn
Khi tôi biên dịch chương trình bằng GCC, nó báo "cảnh báo: khai báo không khai báo gì [-fpermissive]". Mã được đề cập như sau: typedef int BOOL Làm cách nào để xóa cảnh báo? Câu trả lời hay nhất Bạn có thể thử cách sau.
Tôi đang viết một lớp không cần thiết có chứa một tập hợp các cặp khóa-giá trị và trong quá trình biên dịch, tôi gặp phải một lỗi rất lạ mà tôi không thể hiểu được. Trong một hàm rất giống với hàm ở đây, nhưng không có ngữ cảnh do độ phức tạp của mã được yêu cầu, tôi gặp lỗi: TValue& opera
Câu hỏi rất đơn giản. Để làm rõ hơn, chính xác thì sự khác biệt giữa Foo1 và Foo2 trong mã bên dưới về cách chúng được khai báo (ví dụ: sử dụng class Foo1 { .. }; trong khi mã kia sử dụng lớp typedef
Tôi đang phát triển một dự án web và tôi đang gặp một số vấn đề khi di chuyển từ cơ sở dữ liệu Oracle sang cơ sở dữ liệu mysql. Tôi muốn tạo một hàm với mã này: DROP FUNCTION IF EXISTS F_MANIFEST_GAB
Có cờ nào tôi có thể chuyển tới gcc để tắt cảnh báo này không? Tôi biết nó làm gì, nhưng nó không quan trọng với chương trình của tôi. EDIT: Tôi chỉ muốn tắt cảnh báo và giữ nguyên mã. Biên dịch đoạn mã sau sẽ tạo ra một cảnh báo: struct post{ unsigne
Tôi là một lập trình viên xuất sắc, rất giỏi!