21xrx.com
2024-12-22 15:04:44 Sunday
登录
文章检索 我的文章 写文章
C的struct和C++的struct的区别
2023-07-14 05:15:00 深夜i     --     --
C语言 C++语言 struct 区别

在C语言中,struct是一种自定义数据类型,可以将不同的数据类型组合在一起,形成一个新的数据类型。而在C++语言中,struct也是一种自定义数据类型,但与C语言不同的是,它还可以拥有自己的成员函数和访问修饰符。

在C语言中,struct的定义和使用较为简单,可以通过定义一个结构体变量,给每个属性赋值,再通过点号来访问每个属性。例如:


struct Student {

  char name[20];

  int age;

  float score;

};

struct Student s1;  // 定义结构体变量

strcpy(s1.name, "Tom");

s1.age = 18;

s1.score = 89.5;

printf("Name: %s, Age: %d, Score: %f", s1.name, s1.age, s1.score); // 访问结构体属性

而在C++语言中,我们可以给struct添加成员函数,并可以使用访问修饰符来限制对结构体成员的访问权限。例如:


struct Student {

  private:

    char name[20];

    int age;

    float score;

  public:

    void setName(char *n) {

      strcpy(name, n);

    }

    void setAge(int a)

      age = a;

    

    void setScore(float s)

      score = s;

    

    void printInfo() {

      printf("Name: %s, Age: %d, Score: %f", name, age, score);

    }

};

Student s1;  // 定义结构体变量

s1.setName("Tom");

s1.setAge(18);

s1.setScore(89.5);

s1.printInfo();  // 访问结构体属性

另外,在C语言中,struct在传递参数时需要使用结构体指针,而在C++语言中,我们可以直接使用结构体。例如:


void printInfo(Student s) {

  // 直接使用结构体

  printf("Name: %s, Age: %d, Score: %f", s.name, s.age, s.score);

}

int main() {

  Student s1;

  s1.setName("Tom");

  s1.setAge(18);

  s1.setScore(89.5);

  printInfo(s1);

  return 0;

}

综上所述,C的struct和C++的struct主要区别在于C++的struct可以拥有成员函数和访问修饰符,使得结构体更加灵活和易于使用。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复