您的位置:

C++声明详解

一、c声明变量

c语言中,声明变量需要指定变量的类型,在变量名前添加数据类型。如:

int a;
float b;
char c;

在C++中,与C语言相同,变量的声明同样需要指定类型,但更支持各种自定义类型的声明。如:

#include <iostream>
using namespace std;

struct Student {
    int id;
    string name;
    int age;
};

int main() {
    int a;
    float b;
    char c;
    Student stu;
    return 0;
}

二、c声明两个变量值相同

在C语言中,如需将一个变量赋值给另一个变量,需要这样写:

int a = 1;
int b = a;

而在C++中,可以这样写:

int a = 1;
int b{ a };

三、c声明赋值

C语言中,为变量赋值需要使用赋值符(=)。如:

int a;
a = 10;

而在C++中,可以在声明时进行初始化赋值。如:

int a = 10;

也可以使用赋值符(=)进行赋值。如:

int a;
a = 10;

四、声明抽象类的引用并将c赋给a

在C++中,可以使用纯虚函数实现抽象类。如:

class Shape {
public:
    virtual void show() = 0;
};

class Circle : public Shape {
public:
    void show() override {
        cout << "This is a circle." << endl;
    }
};

int main() {
    Shape* c = nullptr;
    Circle circle;
    c = &circle;
    return 0;
}

在上面的例子中,声明一个抽象类Shape,并生成一个Circle派生类。将Circle的指针赋值给Shape指针c,以此完成将c赋给a的过程。

五、c声明对象

C语言中没有对象的概念,但C++中支持面向对象编程,可以定义类和对象。如:

#include <iostream>
using namespace std;

class Student {
public:
    string name;
    int age;
    void showInfo() {
        cout << "Name: " << name << " Age: " << age << endl;
    }
};

int main() {
    Student stu;
    stu.name = "Tom";
    stu.age = 18;
    stu.showInfo();
    return 0;
}

在上面的例子中,定义一个Student类,类中包含姓名和年龄两个属性以及打印信息的方法showInfo()。在main函数中声明一个stu对象,并对其属性进行赋值,最后打印出对象的信息。

六、c声明string长度

在C语言中不支持字符串类型,需要使用字符数组来表示。可以通过strlen()函数获取字符串长度。如:

#include <stdio.h>
#include <string.h>

int main() {
    char str[] = "Hello World";
    int len = strlen(str);
    printf("String length is %d.\n", len);
    return 0;
}

而在C++中,可以使用string类型来表示字符串,并使用其内置函数size()获取长度。

#include <iostream>

using namespace std;

int main() {
    string str = "Hello World";
    int len = str.size();
    cout << "String length is " << len << "." << endl;
    return 0;
}

七、c声明字符串

C语言中,字符串是字符数组,可以使用字符串字面量来初始化。

char str[] = "Hello World";

在C++中,可以使用string类型来表示字符串,可以使用字符串字面量或构造函数进行初始化。如:

string str1 = "Hello World";
string str2("Hello World");

八、c声明结构体

C语言中,声明结构体需要使用关键字struct。如:

struct Student {
    int id;
    char name[20];
    int age;
};

在C++中,可以在struct关键字前添加类关键字class。如:

class Student {
public:
    int id;
    string name;
    int age;
};

九、c声明定义

C语言中,声明变量需要在前面添加关键字extern。如:

extern int a;

同样,在C++中也可以使用关键字extern进行声明,但其默认为外部链接。如:

extern int a;
int main() {
    a = 10;
    return 0;
}

此时,a变量已在其他地方定义。

十、c声明外部变量

C语言中,使用关键字extern声明外部变量。如:

extern int a;

在C++中同样可以使用关键字extern声明外部变量,但它与C语言中的用法有所不同。如:

在test.cpp文件中定义一个变量a:

int a = 10;

在main.cpp文件中使用变量a:

#include <iostream>

extern int a;

int main() {
    std::cout << "a=" << a << std::endl;
    return 0;
}

需要在main.cpp中使用extern关键字声明变量a,以便编译器在链接时能够找到该变量的定义。