Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Viết chương trình C không biên dịch được trong C++


Ở đây, chúng ta sẽ viết một số chương trình C không thể biên dịch trong C++. Mặc dù C++ được coi là kế thừa của C có tất cả tính năng và tương thích với mã C, nhưng vẫn có một số chương trình không thể biên dịch hoặc báo lỗi biên dịch khi dùng trình biên dịch C++.

Danh sách một số chương trình C không biên dịch được trong C++:

  • Gọi hàm trước khi khai báo - Trong C++, gọi hàm trước khi khai báo gây lỗi biên dịch. Nhưng điều này hoạt động tốt trong C.

Ví dụ

#include <stdio.h> int main(){    printHello();    return 0; } void printHello(){    printf("TutorialsPoint"); }

Đầu ra

TutorialsPoint
  • Sử dụng con trỏ ép kiểu - Nếu khai báo con trỏ trong C là void rồi dùng con trỏ này trỏ đến biến dữ liệu khác. Điều này có thể làm trong C bởi chính trình biên dịch nhưng trong C++, các con trỏ này cần được ép kiểu.

Ví dụ

#include <stdio.h> int main(){    void *ptr;    int *ptr2 = ptr;    return 0; }
  • Khai báo hằng số không khởi tạo - Trong C, bạn có thể khai báo hằng số mà không cung cấp giá trị nhưng điều này báo lỗi khi làm trong C++.

Ví dụ

#include <stdio.h> int main(){    const int x;    printf("%d", x);    return 0; }

Đầu ra

0
  • Sử dụng con trỏ thường với biến const - Trong C++ điều này không được phép trong khi C cho phép dùng biến const với con trỏ thường.

Ví dụ

#include <stdio.h> int main(void){    int const x = 3424;    int *cptr = &x;    printf("giá trị con trỏ : %d\n", *cptr);    return 0; }

Đầu ra

 Giá trị con trỏ: 3424
  • Sử dụng từ khóa cụ thể làm tên biến - Trong ngôn ngữ C, việc dùng một số từ khóa làm tên biến là hợp lệ, tức là sẽ biên dịch trong C nhưng không biên dịch trong C++.

Ví dụ

#include <stdio.h> int main(void){    int class = 5;    printf("%d", class); }

Đầu ra

5

Đây là những từ khóa được đưa vào C++, một số khác là new, delete, explicit, v.v.