赞
踩
#include <iostream> using namespace std; struct Student { int id; char name[16]; int age; // C++ 支持结构体声明函数,可以认为当前函数属于当前结构体 void test() { cout << "测试" << endl; } }; /* C++ 中结构体的数据类型是 struct 关键字之后的名称 通常情况下按照大驼峰命名法规则 */ int main(int argc, char const *argv[]) { /* 直接可以利用结构体 struct 关键字之后的名称 作为数据类型名称 */ Student stu = {1, "James", 16}; cout << "ID : " << stu.id << endl; cout << "Name : " << stu.name << endl; cout << "Age : " << stu.age << endl; // 结构体声明实现的函数,通过结构体变量或者结构体指针调用 stu.test(); return 0; }
#include <iostream> // 相当于引入了一个 <string> C 语言头文件,推荐使用 <cstring> #include <cstring> // cstdlib 相当于导入 stdilb.h #include <cstdlib> using namespace std; struct Student { int id; char name[32]; int age; void set_id(int id); int get_id(); void set_name(char *name); char *get_name(); void set_age(int age); int get_age(); }; /* 外部实现结构体声明函数,需要使用作用域运算符 明确当前函数的归属是哪一个结构体 void Student::set_id(int id) 实现结构体 Student 的函数 */ void Student::set_id(int id) { /* this->id 明确告知编译器,当前操作的 id 是当前调用函数结构体变量/指针的成员变量 id 而不是参数变量 id */ this->id = id; } int Student::get_id() { return id; } void Student::set_name(char *name) { strcpy(this->name, name); } char *Student::get_name() { return name; } void Student::set_age(int age) { this->age = age; } int Student::get_age() { return age; } int main(int argc, char const *argv[]) { /* 通过结构体指针操作结构体中的函数 利用 set 相关函数,给予当前结构体数据进行赋值操作 stu->set_id = 10; */ Student *stu = (Student *)calloc(1, sizeof(Student)); stu->set_id(10); stu->set_name("James"); stu->set_age(16); cout << "ID : " << stu->get_id() << endl; cout << "Name : " << stu->get_name() << endl; cout << "Age : " << stu->get_age() << endl; free(stu); stu = NULL; return 0; }
整体结构为结构体,内存使用指定数据类型,针对于当前指定类型,完成对应的【增删改查】操作
考虑到数组操作中,容量问题较为复杂。可以在结构体中设计对应的数据,将容量和有效元素个数进行保存
#define DEFAULT_CAPACITY 10
struct MyArray
{
// 存储 Student * 指针数据数组,默认容量为 10
Student ** arr = new Student*[DEFAULT_CAPACITY];
// 整个底层数组的容量
int capacity = DEFAULT_CAPACITY;
// 当前数组中存储的有效元素个数
int size;
}
student.h 头文件
#ifndef _STUDENT_H_ #define _STUDENT_H_ #include <iostream> using namespace std; struct Student { int id; string name; int age; void setId(int id); int getId(); void setName(string name); string getName(); void setAge(int age); int getAge(); }; #endif
student.cpp C++ 文件
#include "student.h"
void Student::setId(int id) { this->id = id; }
int Student::getId() { return id; }
void Student::setName(string name) { this->name = name; }
string Student::getName() { return name; }
void Student::setAge(int age) { this->age = age; }
int Student::getAge() { return age; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。