use a '&' to create a pointer to member

Dec 23, 2017 at 4:06am

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
//list of variables
		char fileTag_;
		char typeIndicator;
		char perishableSku[max_sku_length+1];
		char *arrayHolder;
		char productUnit[max_unit_length+1];
		int currentQuantity;
		int demandQuantity;
		double originalPrice;
		bool taxAvailability;
//these two are setters
	void NonPerishable::sku(const char *t_sku) { strncpy(perishableSku, t_sku, max_sku_length); }

	void NonPerishable::price(double price) { originalPrice = price; }


//these two are getters
const char* NonPerishable::sku() const {
		return perishableSku;
	}

int NonPerishable::price() const {
		return originalPrice;
	}

  	NonPerishable::NonPerishable(const NonPerishable& oitem) {
		sku(oitem.sku);
		name(oitem.arrayHolder);
		price(oitem.price);
		taxed(oitem.taxAvailability);
		quantity(oitem.currentQuantity);
		qtyNeeded(oitem.demandQuantity);
	}
	NonPerishable& NonPerishable::operator=(const NonPerishable& oldItem) {
		if (this != &oldItem && !oldItem.isEmpty()) {
			sku(oldItem.sku);
			name(oldItem.arrayHolder);
			price(oldItem.originalPrice);
			taxed(oldItem.taxAvailability);
			quantity(oldItem.currentQuantity);
			qtyNeeded(oldItem.demandQuantity);
		}

	}


It gives me an error saying use & to create a pointer to member at line 27, 29, 36
Anyone knows the solution?
Last edited on Dec 23, 2017 at 4:11am
Dec 23, 2017 at 6:30am
What are you attempting to do on lines 27, 29, and 36?

If you're trying to call NonPerishable::sku or NonPerishable::price, your syntax doesn't make much sense. I'm not just being vague on purpose, I'm not sure what to say. You're trying to call a function sku, but the input to the function is the name of the same function.

Perhaps start by saying what you think lines 27, 29, and 36 are supposed to be doing?

Edit: perhaps you meant to do
sku(oitem.perishableSku); ?
and
price(oitem.originalPrice); ?

The input to your sku function should be a const char* (AKA a C string, or can be a raw char array), and the input to your price function should be a double.
Last edited on Dec 23, 2017 at 6:36am
Dec 23, 2017 at 11:59am
ad () to the end of the function call. E.g. line 27:

sku(oitem.sku())

otherwise you try to store the address of the function.
Dec 23, 2017 at 5:59pm
The problem with that is sku is a "setter" function in his code, coder777. It returns void.
Dec 26, 2017 at 9:57am
@Ganado

No, there are both. See line 12 and 18.
Topic archived. No new replies allowed.