结构体与模板
结构体嵌套
在结构体中我们可以定义自己需要的成员及成员类型。成员类型可以是 C++ 的标准类型,也可以是另一个结构体。例如:
struct Book
{
int book_id;
string name;
string ISBN;
};
struct Home
{
int size;
Book One;
};
特别要需要注意的是这个类型不可以是自己,否则就无法通过编译。
例如下面这个程序:
struct Book
{
int book_id;
string name;
string ISBN;
Book book;
};
结构体与函数
结构体与其他类型相同,可以作为函数的参数进行传递。
将结构体作为函数参数时,遵循值传递的规则。函数体内对结构体进行修改并不会影响原来变量的值。
#include <bits/stdc++.h>
using namespace std;
struct Book
{
int book_id;
string name;
};
void setBook(Book bk)
{
bk.book_id = 3;
bk.name = "World";
}
int main()
{
Book s;
s.book_id = 1;
s.name = "Hello";
setBook(s);
cout << s.book_id << endl;
cout << s.name << endl;
}
运行结果如下:
1
Hello
可以看到把结构体变量 s 作为函数的参数传入,并在函数内部对传入的 s 的内容做修改,是不会影响到原来 s 变量的取值的。
如果希望能够在调用函数的内部,修改传入参数的值,则需要增加引用传递符号 & 。或者把函数的返回值类型设为结构体。
#include <bits/stdc++.h>
using namespace std;
struct Book
{
int book_id;
string name;
};
void setBook(Book &bk)
{
bk.book_id = 3;
bk.name = "World";
}
int main()
{
Book s;
s.book_id = 1;
s.name = "Hello";
setBook(s);
cout << s.book_id << endl;
cout << s.name << endl;
}
运行结果如下:文章来源:https://www.toymoban.com/news/detail-642404.html
3
World
结构体除了可以作为函数的参数,也可以作为函数的返回值。文章来源地址https://www.toymoban.com/news/detail-642404.html
#include <bits/stdc++.h>
using namespace std;
struct Books {
int Id;
string Title;
} book;
void F1
到了这里,关于结构体与模板的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!