【发布时间】:2014-12-06 04:00:16
【问题描述】:
我创建了一个包含私人名称、售出单位和剩余单位的课程。
我创建了两个返回的类方法,销售单位和剩余单位作为整数。
我想按从大到小对售出的单位进行排序,但我在 cmets 中解释时遇到了错误。
我做错了什么,是不是很明显?
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
const int MAX_SIZE = 1000;
const char FILE_NAME[14] = "inventory.txt";
//make an Item class
class Item
{
private:
string name;
int sold, remain;
public:
void set_name(string _name);
void set_sold(int _sold);
int get_sold(int);
void set_remain(int _remain);
int get_remain(int);
void print();
};
//I erased all the methods setting name, sold, and remaining, they work though
int Item::get_sold(int s)
{
s = sold;
return s;
}
int Item::get_remain(int r)
{
r = remain;
return r;
}
//greatest to least units sold
void sort_sold(Item gL[], int ct) // ct is a global constant set to 1000
{
//local variables
int smallestPos;
int temp;
//for every position in the array
for(int i=0;i<ct;i++)
{
//find the smallest element starting at that point
smallestPos = i;
for(int j=i+1;j<ct;j++)
{
if(gL[j].get_sold(j) < gL[smallestPos].get_sold(smallestPos))
{
//found a smaller one, remember and keep going
smallestPos = j;
}
}
//see if we found something smaller than gL[i].get_sold(i)
if(gL[i].get_sold(i) > gL[smallestPos].get_sold(smallestPos))
{
//we did find a smaller one, so swap with gL[i].get_sold(i)
temp = gL[i].get_sold(i);
gL[i].get_sold(i) = gL[smallestPos].get_sold(smallestPos); //not assignable?
gL[smallestPos].get_sold(smallestPos) = temp; //not assignable?
}
}
}
【问题讨论】:
-
你不能将函数调用的结果赋给另一个值。
-
你建议我怎么做,看看是否有更小的单位出售?
-
另外,您的 get_sold 方法为什么要传入一个值然后立即覆盖它?我认为你需要复习你的 C++ 并重新思考。
-
只是为了安全起见,使用私人数据。由于您无法访问我正在尝试做的私人数据
-
不,没有意义。它没有用。您的 get_remain 也有同样的问题。
标签: c++ xcode unit-testing