解释这句C++程序 Book*b=new Book(t,a,p,d);
时间: 2023-11-27 21:53:04 浏览: 65
这行代码是在 C++ 中使用 new 运算符动态分配内存,并创建一个名为 b 的指向 Book 类型的指针,该指针指向一个新分配的 Book 类型对象。该对象的构造函数被调用,并将传递的参数 t、a、p、d 分别作为 Book 类型对象的属性进行初始化。该语句等价于以下代码:
```c++
Book* b;
b = new Book(t, a, p, d);
```
相关问题
public class DataUtils { static Book[] booksArray=new Book[5]; //构建链表 static LinkListClass<Book> linkListClass; static{ Book book1=new Book(1,"Java Programm",12.5f,2); Book book2=new Book(2,"Python Programm",22.5f,2); Book book3=new Book(3,"H5 Programm",13.5f,2); Book book4=new Book(4,"SQL Programm",13.5f,2); Book book5=new Book(5,"C++ Programm",10.5f,2); booksArray[0]=book1; booksArray[1]=book2; booksArray[2]=book3; booksArray[3]=book4; booksArray[4]=book5; linkListClass=new LinkListClass(); linkListClass.CreateListF(booksArray); } }
这段代码中的 `DataUtils` 类定义了一个静态数组 `booksArray` 和一个静态链表 `linkListClass`,并在静态代码块中初始化它们。
数组中存储了五本书的信息,包括书名、价格、库存等。链表中存储了数组中的五本书,并且可以通过链表进行添加、删除等操作。
需要注意的是,这段代码中使用了链表的头插法来构建链表,即从链表头部开始插入节点。这种方法的优点是可以避免频繁的节点移动,缺点是链表的顺序与数组的顺序相反。
另外,这段代码中的书籍信息是写死在代码中的,如果需要动态添加、删除书籍信息,可以考虑将书籍信息存储在数据库中,并通过程序来读取和操作。
package shiyan4_2; import java.util.*; public class MainClass { @SuppressWarnings("unchecked") public static void main(String args[]) { List<Book> bookList=new LinkedList<Book>(); String bookName[]={"C语言程序设计基础","计算机组成原理","JSP基础教程","C++程序设计", "J2ME编程","操作系统","数据库技术"}; double bookPrice[]={29,21,22,29,34,32,29}; Book book[]=new Book[bookName.length]; for(int k=0;k<book.length;k++) { book[k]=new Book(); book[k].setName(bookName[k]); book[k].setPrice(bookPrice[k]); bookList.add(book[k]); } Book newBook=new Book(); newBook.setPrice(29); newBook.setName("Java程序设计"); bookList.add(newBook); Collections.sort(bookList); int m=-1; System.out.println("经查询, "+newBook.getName()+"("+newBook.getPrice()+")与下列图书:"); while((m=Collections.binarySearch(bookList,newBook,null))>=0) { Book bk=bookList.get(m); System.out.println("\t"+bk.getName()+"("+bk.getPrice()+")"); 【代码4】 } System.out.println("价钱相同。"); } }
这段代码是一个关于图书的主程序,包含了以下步骤:
1. 创建一个LinkedList类型的图书列表bookList和两个数组bookName和bookPrice;
2. 遍历book数组,创建Book对象,设置其名称和价格,并将其添加到bookList中;
3. 创建一个新的Book对象newBook,设置其名称和价格,将其添加到bookList中;
4. 使用Collections.sort()方法对bookList进行排序;
5. 使用Collections.binarySearch()方法查找newBook在bookList中的位置;
6. 如果找到了newBook,则输出与newBook价格相同的图书名称和价格;
7. 如果没有找到newBook,则输出“没有找到与newBook价格相同的图书”。
【代码4】的实现应该是:
```
bookList.remove(m);
```
这行代码的作用是将找到的相同价格的图书从bookList中删除,以避免重复输出。