gpt4 book ai didi

c++ - 视频对象链表插入函数

转载 作者:行者123 更新时间:2023-11-28 06:40:41 24 4
gpt4 key购买 nike

尝试为视频对象创建链接列表以插入、删除、查找、打印。插入函数出错

main.cpp:50:25: 错误:'*' 标记前需要主表达式 list.insert(视频*视频); ^

主要.cpp

int main (){

23 int counter = 0;
24 string command;
25 Vlist list;
26 Video *video;

29 while (getline(cin, command))
30 {
31 if(command=="insert")
32 {
33 getline(cin, title);
34 getline(cin, url);
35 getline(cin, comment);
36 cin >> length;
37 cin >> rating;
38 cin.ignore();
39

46 list.insert(Video *video);
47 counter++;
48 }
49 else if(command=="remove")
50 {
51 getline(cin, url);
52 getline(cin, comment);
53 cin >> length;
54 cin >> rating;
55 cin.ignore();
56 }

使用传入参数的视频对象创建节点构造函数

视频列表.h

 5 #include <iostream>
6 #ifndef VLIST_H
7 #define VLIST_H
8 #include <string>
9 #include "video.h"
10
11 using namespace std;
12
13 class Vlist
14 {
15 public:
16 Vlist();
17 void insert(Video *video);
18 void insert_end();
19 void print();
20
21 private:
22 class Node
23 {
24 public:
25 Node(Video *video, Node *next)
26 {
27 m_video=video; m_next=next;}
28 Video* m_video;
29 Node *m_next;
30 };
31
32 Node *m_head;
33
34 };
35 #endif

视频列表.cpp

28 void Vlist::insert(Video *video)
29 {
30
31 if(m_head==NULL)
32 {
33 m_head=new Node(video, NULL);
34 }
35 else
36 {
37 Node *ptr=m_head;
38 while(video->get_title()>ptr->m_next -> m_video-> get_title())
39 {
40 ptr=ptr->m_next;
41 }
42 ptr->m_next=new Node(video*, ptr->m_next);
43 }
44
45
46 }

视频.h

  5 #ifndef VIDEO_H //if not define
6 #define VIDEO_H
7
8 #include<iostream>
9 #include<string>
10
11 using namespace std;
12
13 class Video
14 {
15 public:
16 Video(string title , string url, string comment, double length, int rating);
17 ~Video();
18 void print();
19 bool longest_length(Video *smallest);
20 bool largest_rating(Video *smallest);
21 bool title_order(Video *smallest);
22 string get_title();
23
24
25 private:
26
27 double m_length;
28 int m_rating;
29 string m_title;
30 string m_comment;
31 string m_url;
32
33 };
34 #endif
35

视频.cpp

 64 string Video::get_title()
65 {
66 return m_title;
67 }

最佳答案

list.insert(Video *video);

错了,应该是

list.insert(*video);

语法正确。但是看看你对 VList 的实现,你正在获取一个指向视频的指针,所以

list.insert(video);

可能是您正在寻找的。

您的编译器错误很好地解释了这一点,您应该习惯仔细查看此类消息。

我认为您发布的代码中的行号有点不对。

关于c++ - 视频对象链表插入函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26032260/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com