Switch/Case - Expected Member name or ";" after declaration specifiers [closed] - c++

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 8 years ago.
Improve this question
"Expected Member name or ";" after declaration specifiers" error appear on the top line switch(stuff)
float waveform = getParameter(6);
switch(waveform){
case 1: Sine signalGenerator
break;
case 2: SawWave signalGenerator
break;
case 3: SquareWave signalGenerator
break;
default: Sine signalGenerator
}
Any suggestions on how to sort it would be great! Thanks in advance!
This is the real code:
float waveform = getParameter(6);
switch(waveform)
{ case 1: Sine signalGenerator break;
case 2: SawWave signalGenerator break;
case 3: SquareWave signalGenerator break;
default: Sine signalGenerator
}

what you want is probably this:
int waveform = (int) getParameter(6);
WaveBase* sigGen;
switch(waveform) {
case 1: sigGen = new Sine; break;
case 2: sigGen = new SawWave; break;
case 3: sigGen = new SquareWave; break;
default: sigGen = new Sine;
}
// use sigGen here
delete sigGen;
this assumes that Sine, SawWave and SquareWave have a common base (they should)
and that its destructor is virtual (it should)

Related

How to detect what mouse key is pressed in C++ SDL? [closed]

Closed. This question needs debugging details. It is not currently accepting answers.
Edit the question to include desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem. This will help others answer the question.
Closed 1 year ago.
Improve this question
How do I determine which exact mouse button (right, left, middle, etc.) is pressed? I'm using SDL. Here is the code that I have, which says if any mouse button is clicked or not:
case SDL_MOUSEBUTTONDOWN:
{
Mouse_Pressed = event.button.clicks;
} break;
case SDL_MOUSEBUTTONUP:
{
Mouse_Pressed = 0;
} break;
You can access that through the event button field.
case SDL_MOUSEBUTTONUP:
switch ( ev.button.button ) {
case SDL_BUTTON_LEFT:
break;
case SDL_BUTTON_RIGHT:
break;
case SDL_BUTTON_MIDDLE:
break;
case SDL_BUTTON_X1:
break;
case SDL_BUTTON_X2:
break;
}
https://wiki.libsdl.org/SDL_MouseButtonEvent

Various options in switch case [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 4 years ago.
Improve this question
I was trying to do a quiz in C. 5 answers, only one is correct. I'm using the switch. My doubt is on the case you have the number of the correct answer and the consequence of being correct. But on the other hand, I need to make the other 4 wrong. how can I select multiple answers? is it case 1,3,4,5? P.s. There's also the option of being invalid, and i need a string for each case! pontos mean points and p1 is the answer. Thank you
switch (p1) {
case 2 :
correct answer
pontos = pontos + 1;
break;
case 1, 3, 4, 5 :
wrong answer
pontos = pontos - 1;
default :
Invalid answer
pontos = pontos - 1;
}
You can stack up multiple case statements with the same body, like this:
switch (foo) {
case 1:
case 2:
case 3:
case 5: {
printf("Sorry, wrong answer.");
break;
}
case 4: {
printf("You got it right!");
break;
}
}
Or you could just use a default case to catch everything that's not right:
switch (foo) {
case 4: {
printf("You got it right!");
break;
}
default: {
printf("Sorry, wrong answer.");
break;
}
}

What are some interesting uses of 'switch' in C/C++? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
The switch statement in C/C++ has an interesing feature that all subsequent blocks will be executed if a condition is met
For example,
int a = 2;
int b = a;
switch(b)
{
case 1:cout<<1;
case 2:cout<<2;
case 3:cout<<3;
case 4:cout<<4;
};
The above code will output 234 unless I put a break statement in case 2.
In 3 years(quite small,yeah) of my C/C++ programming experience, I have never encountered a problem where I had to use switch without putting break statments in every case. But judging by the fact that this feature has been stuck for so long, there might be some utility of it.
Question: What are some clever uses of switch statement as to utilize the above mentioned feature in C/C++?
Probably one of the most interesting use cases I have seen would be Duff's Device the case where you extend a scope within a switch over multiple cases which would look something like this:
void send( int *to, const int *from, int count)
{
int n = (count + 7) / 8;
switch(count % 8)
{
case 0: do { *to = *from++; // <- Scope start
case 7: *to = *from++;
case 6: *to = *from++;
case 5: *to = *from++;
case 4: *to = *from++;
case 3: *to = *from++;
case 2: *to = *from++;
case 1: *to = *from++;
} while(--n > 0); // <- Scope end
}
}
This is usually used when you want to apply a similar action to a set of values. For instance, the following :
switch (event) {
case DEVICE_DISCONNECTED:
case CONNECTION_ERROR:
case CONNECTION_TIMEOUT:
transitionTo(disconnectedState);
break;
case CONNECTION_SUCCESS:
transitionTo(connectedState);
break;
}
is much more concise and readable in my opinion than :
switch (event) {
case DEVICE_DISCONNECTED:
transitionTo(disconnectedState);
break;
case CONNECTION_ERROR:
transitionTo(disconnectedState);
break;
case CONNECTION_TIMEOUT:
transitionTo(disconnectedState);
break;
// ...
}
In my current project, I have the following enumeration:
enum NodeType
{
SCALAR, COMPOSITE, ARRAY, RESTRICTED_ARRAY
};
Thus, quite a few node-processing routines use this pattern:
switch (nodeType)
{
case SCALAR:
processScalar();
break;
case COMPOSITE:
processComposite();
break;
case RESTRICTED_ARRAY:
if (!handleRestrictions())
return false;
// continue to next case
case ARRAY:
processArray();
break;
}
Note that it's almost necessary to always mark the lack-of-break as explicitly intended with a comment (like I did above) - future maintainers (including yourself in 3 months) will thank you.
I've often used a construct to parse command line arguments like this:
switch (argument) {
case arg_h:
case arg__help:
case arg_questionmark:
printf("Help\n");
break;
case arg_f:
case arg__file:
//...
}
where argument is an enum type.

Proper use of a switch statement [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I'm wondering how to use the switch statement, and I have a couple questions.
What is the case '': for? as in, how do I set the conditions?
How many cases can I have?
How do I set the conditions?
It's very simple: assuming an integral type Type you can use:
Type i;
switch (i) {
case x:
// ...
break;
case y:
// ...
break;
// ...
default:
// ...
break; // optional
};
where x, y, ... etc. are values convertible to the integral type Type that you want to check for equality in i.
So for example:
int x = 3;
switch (x) {
case 1:
std::cout << '1';
break;
case 2:
std::cout << '2';
break;
case 3:
std::cout << '3';
break;
default: break;
};
would print:
3
For more detailed informations on the switch statement, please visit this page.
How many cases can i have?
As many as you want.

C++ Error: identifier "barCode" is undefined [closed]

Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 8 years ago.
Improve this question
on line 34 of ZipCode.cpp my compiler (MS Visual Studios 2013) is giving me Error: identifier "barCode" is undefined. Here is my header file ZipCode.h:
#ifndef _ZIPCODE_H
#define _ZIPCODE_H
#include <string>
class ZipCode {
private:
std::string barCode;//The Bar Code
void convDigit(int);//Converts a single digit to its bar code equivalent
public:
ZipCode(int);//Constructor recieving a zip code
ZipCode(std::string);//Constructor recieving a bar code
int getZipCode(void);//Returns the zip code
std::string getBarCode(void);//Returns the bar code
};
#endif
Source code ZipCode.cpp:
#include "ZipCode.h"
#include <string>
ZipCode::ZipCode(std::string a){
barCode = a;
}
ZipCode::ZipCode(int a){
barCode = "";
for (int b = 0; b < 5; b++){
int digit = a % 10;
a /= 10;
convDigit(digit);
}
}
void ZipCode::convDigit(int a){
switch (a){
case 0: barCode = std::string("11000") + barCode; break;
case 1: barCode = std::string("00011") + barCode; break;
case 2: barCode = std::string("00101") + barCode; break;
case 3: barCode = std::string("00110") + barCode; break;
case 4: barCode = std::string("01001") + barCode; break;
case 5: barCode = std::string("01010") + barCode; break;
case 6: barCode = std::string("01100") + barCode; break;
case 7: barCode = std::string("10001") + barCode; break;
case 8: barCode = std::string("10010") + barCode; break;
case 9: barCode = std::string("10100") + barCode; break;
}
}
std::string getBarCode(){
return (barCode);//Error: identifier "barCode" is undefined
}
In the previous three functions I use barCode and there is no problem there, so I'm confused why there is now a problem in getBarCode(). I've tried:
return (ZipCode::barCode)//Error: member ZipCode::barCode is inaccessible.
return (this->barCode)//Error: 'this' may only be used inside a non-static member function.
Both of the above errors also confuse me, because barCode and getBarCode are both members of the ZipCode class, and getBarCode is not a static function. I'm still new to programming (if it isn't obvious) and I'm especially new to C++. Any help would be greatly appreciated, thank you.
Like the other methods you define, it needs to be qualified with the name of the class its in, so
std::string ZipCode::getBarCode() {